>From the looks of it, your toolchains plugin might not get executed. Are you sure you've configured execution phase to "validate" in toolchains plugin? Last when I had to use toolchains plugin I don't remember needing to configure particular surefire properties. See java9 with toolchains.xml https://maven.apache.org/surefire/maven-surefire-plugin/java9.html
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-toolchains-plugin</artifactId> <version>1.1</version> <executions> <execution> <phase>validate</phase> <goals> <goal>toolchain</goal> </goals> </execution> </executions> <configuration> <toolchains> <jdk> <version>9</version> </jdk> </toolchains> </configuration> </plugin> On Thu, Aug 26, 2021 at 1:31 PM Delany <delany.middle...@gmail.com> wrote: > > Hi. Im having trouble with the jdkToolchain feature of maven-surefire-plugin > https://maven.apache.org/surefire/maven-surefire-plugin/examples/toolchains.html > This is my working build tag > > <build> > <pluginManagement> > <plugins> > <plugin> > <artifactId>maven-compiler-plugin</artifactId> > <configuration> > <source>8</source> > <target>8</target> > </configuration> > </plugin> > <plugin> > <artifactId>maven-surefire-plugin</artifactId> > <configuration> > <jdkToolchain> > <version>9</version> > </jdkToolchain> > </configuration> > </plugin> > </plugins> > </pluginManagement> > <plugins> > <plugin> > <artifactId>maven-toolchains-plugin</artifactId> > <executions> > <execution> > <configuration> > <toolchains> > <jdk> > <version>9</version> > </jdk> > </toolchains> > </configuration> > </execution> > </executions> > </plugin> > </plugins> > </build> > > I can build with the above config no problem, but if I configure the > compile plugin with <target>9</target>, surefire throws > > > Execution default-test of goal > org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M5:test failed: > java.lang.UnsupportedClassVersionError: > com/etc/common/crypto/clientreference/TestClientToken has been compiled by > a more recent version of the Java Runtime (class file version 53.0), this > version of the Java Runtime only recognizes class file versions up to 52.0 > > In either case I can see the toolchain being configured in the build log > > [INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ > cryptocommon --- > [INFO] Toolchain in maven-compiler-plugin: JDK[/usr/lib/jvm/zulu-9-amd64] > [INFO] Changes detected - recompiling the module! > [INFO] Compiling 7 source files to > /git/tep22x/common_cryptocommon/target/test-classes > [INFO] > [INFO] --- maven-surefire-plugin:3.0.0-M5:test (default-test) @ > cryptocommon --- > [INFO] Toolchain in maven-surefire-plugin: JDK[/usr/lib/jvm/zulu-9-amd64] > > Now, if on top of my changes thus far I go and configure surefire-plugin > with <forkCount>1</forkCount>, it's back to a successful build. > > But, if I follow the advice of > https://maven.apache.org/surefire/maven-surefire-plugin/examples/class-loading.html > and rather set <forkCount>0</forkCount>, I get this > > [ERROR] Exception in provider > [ERROR] org.apache.maven.surefire.booter.SurefireExecutionException: > Exception in provider > [ERROR] at > org.apache.maven.plugin.surefire.InPluginVMSurefireStarter.runSuitesInProcess(InPluginVMSurefireStarter.java:91) > [ERROR] at > org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeProvider(AbstractSurefireMojo.java:1295) > [ERROR] at > org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java:1159) > [ERROR] at > org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:932) > [ERROR] at > org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137) > [ERROR] at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210) > [ERROR] at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156) > [ERROR] at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148) > [ERROR] at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117) > [ERROR] at > org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call(MultiThreadedBuilder.java:196) > [ERROR] at > org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call(MultiThreadedBuilder.java:186) > [ERROR] at java.util.concurrent.FutureTask.run(FutureTask.java:266) > [ERROR] at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > [ERROR] at java.util.concurrent.FutureTask.run(FutureTask.java:266) > [ERROR] at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > [ERROR] at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > [ERROR] at java.lang.Thread.run(Thread.java:748) > [ERROR] Caused by: java.lang.UnsupportedClassVersionError: > com/traderoot/common/crypto/clientreference/TestClientToken has been > compiled by a more recent version of the Java Runtime (class file version > 53.0), this version of the Java Runtime only recognizes class f > ile versions up to 52.0 > [ERROR] at java.lang.ClassLoader.defineClass1(Native Method) > [ERROR] at java.lang.ClassLoader.defineClass(ClassLoader.java:756) > [ERROR] at > java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) > [ERROR] at > java.net.URLClassLoader.defineClass(URLClassLoader.java:468) > [ERROR] at > java.net.URLClassLoader.access$100(URLClassLoader.java:74) > [ERROR] at java.net.URLClassLoader$1.run(URLClassLoader.java:369) > [ERROR] at java.net.URLClassLoader$1.run(URLClassLoader.java:363) > [ERROR] at java.security.AccessController.doPrivileged(Native > Method) > [ERROR] at > java.net.URLClassLoader.findClass(URLClassLoader.java:362) > [ERROR] at java.lang.ClassLoader.loadClass(ClassLoader.java:418) > [ERROR] at java.lang.ClassLoader.loadClass(ClassLoader.java:351) > [ERROR] at > org.apache.maven.surefire.booter.IsolatedClassLoader.loadClass(IsolatedClassLoader.java:100) > [ERROR] at > org.apache.maven.surefire.api.util.DefaultScanResult.loadClass(DefaultScanResult.java:136) > [ERROR] at > org.apache.maven.surefire.api.util.DefaultScanResult.applyFilter(DefaultScanResult.java:100) > [ERROR] at > org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.scanClasspath(JUnitPlatformProvider.java:147) > [ERROR] at > org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:128) > [ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > Method) > [ERROR] at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > [ERROR] at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > [ERROR] at java.lang.reflect.Method.invoke(Method.java:498) > [ERROR] at > org.apache.maven.surefire.api.util.ReflectionUtils.invokeMethodWithArray2(ReflectionUtils.java:167) > [ERROR] at > org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:161) > [ERROR] at > org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:84) > [ERROR] at > org.apache.maven.plugin.surefire.InPluginVMSurefireStarter.runSuitesInProcess(InPluginVMSurefireStarter.java:87) > [ERROR] ... 16 more > > I don't like guessing what is going on here, but i'm not in a position to > go that extra mile and "Run Maven with -Dmaven.surefire.debug, and attach > to the running process with a debugger." > > In a nutshell my question is "how can I build with a JDK 9 or above using a > toolchain and without being limited to a single test fork?" > > Thanks, > Delany -- // Mantas --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org