You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "John Patrick (Jira)" <ji...@apache.org> on 2020/06/16 00:19:00 UTC

[jira] [Created] (MCOMPILER-420) Support for testCompileSourceRoots to handle multiReleaseOutput

John Patrick created MCOMPILER-420:
--------------------------------------

             Summary: Support for testCompileSourceRoots to handle multiReleaseOutput
                 Key: MCOMPILER-420
                 URL: https://issues.apache.org/jira/browse/MCOMPILER-420
             Project: Maven Compiler Plugin
          Issue Type: Improvement
    Affects Versions: 3.8.1
            Reporter: John Patrick


Testing out surefire v3.0.0-M5 and coming across issues with testCompile.

I've got;
```
src/main/java/aaa
src/main/java11/module-info.java
src/test/java/bbb
src/test/java11/module-info.java
```

My current working copy of the compile configuration looks like this but am trying multiple different versions.
```
<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-compiler-plugin</artifactId>
	<version>3.8.1</version>
	<executions>
		<execution>
			<id>java11-main</id>
			<phase>compile</phase>
			<goals>
				<goal>compile</goal>
			</goals>
			<configuration>
				<release>11</release>
				<jdkToolchain>
					<version>11</version>
				</jdkToolchain>
				<compileSourceRoots>
					<compileSourceRoot>${project.basedir}/src/main/java11</compileSourceRoot>
				</compileSourceRoots>
				<multiReleaseOutput>true</multiReleaseOutput>
			</configuration>
		</execution>
		<execution>
			<id>java11-test</id>
			<phase>test-compile</phase>
			<goals>
				<goal>testCompile</goal>
			</goals>
			<configuration>
				<release>11</release>
				<jdkToolchain>
					<version>11</version>
				</jdkToolchain>
				<compileSourceRoots>
					<compileSourceRoot>${project.basedir}/src/test/java11</compileSourceRoot>
				</compileSourceRoots>
				<multiReleaseOutput>true</multiReleaseOutput>
			</configuration>
		</execution>
	</executions>
</plugin>
```

The java11-tests configuration for multiReleaseOutput appears to be ignored as java 1.8 is being compiled into `target/test-classes` and then it's recompiled using java 11 also into `target/test-classes`

So when surefire executes using java 1.8 I get;
```
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[ERROR] <<<TestClass>>> has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
```

Because I'm creating jar's with base version 1.8 and additional java 11 classes, i need to test against java 1.8 and execute again using java 11 to check no regression issues.

Adding support for multiReleaseOutput or testMultiReleaseOutput, might solve the issue or I might still have issues to resolve.




--
This message was sent by Atlassian Jira
(v8.3.4#803005)