[ 
https://issues.apache.org/jira/browse/MCOMPILER-420?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Scholte updated MCOMPILER-420:
-------------------------------------
    Description: 
Testing out surefire v3.0.0-M5 and coming across issues with testCompile.

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

My current working copy of the compile configuration looks like this but am 
trying multiple different versions.
{code:xml}
 <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>
{code}

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;
{noformat}
 [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
{noformat}

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.

  was:
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.



> 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
>            Priority: Major
>              Labels: multirelease
>
> Testing out surefire v3.0.0-M5 and coming across issues with testCompile.
> I've got;
> {noformat}
>  src/main/java/aaa
>  src/main/java11/module-info.java
>  src/test/java/bbb
>  src/test/java11/module-info.java
> {noformat}
> My current working copy of the compile configuration looks like this but am 
> trying multiple different versions.
> {code:xml}
>  <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>
> {code}
> 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;
> {noformat}
>  [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
> {noformat}
> 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)

Reply via email to