You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Russell Gold <ru...@oracle.com> on 2019/02/12 17:56:52 UTC

maven compiler plugin multiReleaseOutput option and previous versions

Version 3.8.0 of the maven-compiler-plugin supports a multiReleaseOutput option which can compile classes directly to the appropriate META-INF/versions/{release} directory, which is very nice. What I don’t see, though, is how to tell it to use the previous release as its dependency. That is, given:

src
  |—— main
       |—— java
       |—— java9
       \—— java11

These directories will be compiled to:

target/classes, target/classes/META-INF/9 and target/classes/META-INF/11. But when I compile that last directory, I want to include target/classes/META-INF/9 in my class path, and I don’t see an obvious way to do it. It would be great if the plugin realized that this was necessary, but is there a way to configure it?

Thanks,
Russ

Re: maven compiler plugin multiReleaseOutput option and previous versions

Posted by Russell Gold <ru...@oracle.com>.
I just looked at the code. It is only adding the versioned class paths when there is a module descriptor in the current source directory. I might be able to put one in here, as a workaround.

> On Feb 12, 2019, at 2:47 PM, Robert Scholte <rf...@apache.org> wrote:
> 
> I thought I had written an IT for it, but can't find it.
> Looks like you found a bug.
> 
> Robert
> 
> On Tue, 12 Feb 2019 20:03:10 +0100, Russell Gold <ru...@oracle.com> wrote:
> 
>> But it doesn’t appear to be working for me.
>> 
>>> [INFO] --- maven-compiler-plugin:3.8.0:compile (java9) @ pfl-basic ---
>>> [DEBUG] Configuring mojo org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile from plugin realm ClassRealm[plugin>org.apache.maven.plugins:maven-compiler-plugin:3.8.0, parent: jdk.internal.loader.ClassLoaders$AppClassLoader@799f7e29]
>>> [DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile' with basic configurator -->
>>> [DEBUG]   (f) basedir = /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic
>>> [DEBUG]   (f) buildDirectory = /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target
>>> [DEBUG]   (f) compilePath = [/Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes]
>>> [DEBUG]   (f) compileSourceRoots = [/Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java9]
>>> [DEBUG]   (f) compilerId = javac
>>> [DEBUG]   (f) debug = true
>>> [DEBUG]   (f) encoding = UTF-8
>>> [DEBUG]   (f) failOnError = true
>>> [DEBUG]   (f) failOnWarning = false
>>> [DEBUG]   (f) forceJavacCompilerUse = false
>>> [DEBUG]   (f) fork = false
>>> [DEBUG]   (f) generatedSourcesDirectory = /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations
>>> [DEBUG]   (f) jdkToolchain = {version=9}
>>> [DEBUG]   (f) mojoExecution = org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile {execution: java9}
>>> [DEBUG]   (f) multiReleaseOutput = true
>>> [DEBUG]   (f) optimize = false
>>> [DEBUG]   (f) outputDirectory = /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes
>>> [DEBUG]   (f) parameters = false
>>> [DEBUG]   (f) project = MavenProject: org.glassfish.pfl:pfl-basic:4.0.1-SNAPSHOT @ /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/pom.xml
>>> [DEBUG]   (f) projectArtifact = org.glassfish.pfl:pfl-basic:jar:4.0.1-SNAPSHOT
>>> [DEBUG]   (s) release = 9
>>> [DEBUG]   (f) session = org.apache.maven.execution.MavenSession@7640a5b1
>>> [DEBUG]   (f) showDeprecation = false
>>> [DEBUG]   (f) showWarnings = false
>>> [DEBUG]   (f) skipMultiThreadWarning = false
>>> [DEBUG]   (f) source = 1.7
>>> [DEBUG]   (f) staleMillis = 0
>>> [DEBUG]   (s) target = 1.7
>>> [DEBUG]   (f) useIncrementalCompilation = true
>>> [DEBUG]   (f) verbose = false
>>> [DEBUG] -- end configuration --
>>> [DEBUG] Using compiler 'javac'.
>>> [DEBUG] Toolchain JDK[/Library/Java/JavaVirtualMachines/1.6.0_41-b02-445.jdk/Contents/Home] doesn't match required property: version
>>> [DEBUG] Toolchain JDK[/Library/Java/JavaVirtualMachines/jdk1.7.0_65.jdk/Contents/Home] doesn't match required property: version
>>> [DEBUG] Toolchain JDK[/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home] doesn't match required property: version
>>> [DEBUG] Toolchain JDK[/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home] doesn't match required property: version
>>> [INFO] Toolchain in maven-compiler-plugin: JDK[/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home]
>>> [DEBUG] Adding /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations to compile source roots:
>>>  /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java
>>>  /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations
>>> [DEBUG] New compile source roots:
>>>  /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java
>>>  /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations
>>> [DEBUG] CompilerReuseStrategy: reuseCreated
>>> [DEBUG] useIncrementalCompilation enabled
>>> [DEBUG] Stale source detected: /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java9/org/glassfish/pfl/basic/reflection/Bridge.java
>>> [DEBUG] Stale source detected: /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java9/org/glassfish/pfl/basic/reflection/BridgeBase9.java
>>> [INFO] Changes detected - recompiling the module!
>>> [DEBUG] Classpath:
>>> [DEBUG]  /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes
>>> [DEBUG] Source roots:
>>> [DEBUG]  /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java9
>>> [DEBUG] Excutable:
>>> [DEBUG]  /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home/bin/javac
>>> [DEBUG] Command line options:
>>> [DEBUG] -d /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes/META-INF/versions/9 -classpath /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes: -sourcepath /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java9:/Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations: /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java9/org/glassfish/pfl/basic/reflection/Bridge.java /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java9/org/glassfish/pfl/basic/reflection/BridgeBase9.java -s /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations -g -nowarn --release 9 -encoding UTF-8
>>> [DEBUG] incrementalBuildHelper#beforeRebuildExecution
>>> [INFO] Compiling 2 source files to /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes/META-INF/versions/9
>>> [DEBUG] incrementalBuildHelper#afterRebuildExecution
>>> [WARNING] /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java9/org/glassfish/pfl/basic/reflection/BridgeBase9.java:[23,18] ReflectionFactory is internal proprietary API and may be removed in a future release
>>> [WARNING] /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java9/org/glassfish/pfl/basic/reflection/BridgeBase9.java:[26,18] ReflectionFactory is internal proprietary API and may be removed in a future release
>>> [WARNING] /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java9/org/glassfish/pfl/basic/reflection/BridgeBase9.java:[30,28] ReflectionFactory is internal proprietary API and may be removed in a future release
>>> [INFO]
>>> [INFO] --- maven-compiler-plugin:3.8.0:compile (java11) @ pfl-basic ---
>>> [DEBUG] Configuring mojo org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile from plugin realm ClassRealm[plugin>org.apache.maven.plugins:maven-compiler-plugin:3.8.0, parent: jdk.internal.loader.ClassLoaders$AppClassLoader@799f7e29]
>>> [DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile' with basic configurator -->
>>> [DEBUG]   (f) basedir = /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic
>>> [DEBUG]   (f) buildDirectory = /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target
>>> [DEBUG]   (f) compilePath = [/Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes]
>>> [DEBUG]   (f) compileSourceRoots = [/Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java11]
>>> [DEBUG]   (f) compilerId = javac
>>> [DEBUG]   (f) debug = true
>>> [DEBUG]   (f) encoding = UTF-8
>>> [DEBUG]   (f) failOnError = true
>>> [DEBUG]   (f) failOnWarning = false
>>> [DEBUG]   (f) forceJavacCompilerUse = false
>>> [DEBUG]   (f) fork = false
>>> [DEBUG]   (f) generatedSourcesDirectory = /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations
>>> [DEBUG]   (f) jdkToolchain = {version=11}
>>> [DEBUG]   (f) mojoExecution = org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile {execution: java11}
>>> [DEBUG]   (f) multiReleaseOutput = true
>>> [DEBUG]   (f) optimize = false
>>> [DEBUG]   (f) outputDirectory = /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes
>>> [DEBUG]   (f) parameters = false
>>> [DEBUG]   (f) project = MavenProject: org.glassfish.pfl:pfl-basic:4.0.1-SNAPSHOT @ /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/pom.xml
>>> [DEBUG]   (f) projectArtifact = org.glassfish.pfl:pfl-basic:jar:4.0.1-SNAPSHOT
>>> [DEBUG]   (s) release = 11
>>> [DEBUG]   (f) session = org.apache.maven.execution.MavenSession@7640a5b1
>>> [DEBUG]   (f) showDeprecation = false
>>> [DEBUG]   (f) showWarnings = false
>>> [DEBUG]   (f) skipMultiThreadWarning = false
>>> [DEBUG]   (f) source = 1.7
>>> [DEBUG]   (f) staleMillis = 0
>>> [DEBUG]   (s) target = 1.7
>>> [DEBUG]   (f) useIncrementalCompilation = true
>>> [DEBUG]   (f) verbose = false
>>> [DEBUG] -- end configuration --
>>> [DEBUG] Using compiler 'javac'.
>>> [DEBUG] Toolchain JDK[/Library/Java/JavaVirtualMachines/1.6.0_41-b02-445.jdk/Contents/Home] doesn't match required property: version
>>> [DEBUG] Toolchain JDK[/Library/Java/JavaVirtualMachines/jdk1.7.0_65.jdk/Contents/Home] doesn't match required property: version
>>> [DEBUG] Toolchain JDK[/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home] doesn't match required property: version
>>> [DEBUG] Toolchain JDK[/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home] doesn't match required property: version
>>> [INFO] Toolchain in maven-compiler-plugin: JDK[/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home]
>>> [DEBUG] Adding /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations to compile source roots:
>>>  /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java
>>>  /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations
>>> [DEBUG] New compile source roots:
>>>  /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java
>>>  /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations
>>> [DEBUG] CompilerReuseStrategy: reuseCreated
>>> [DEBUG] useIncrementalCompilation enabled
>>> [DEBUG] Stale source detected: /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java11/org/glassfish/pfl/basic/reflection/Bridge.java
>>> [INFO] Changes detected - recompiling the module!
>>> [DEBUG] Classpath:
>>> [DEBUG]  /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes
>>> [DEBUG] Source roots:
>>> [DEBUG]  /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java11
>>> [DEBUG] Excutable:
>>> [DEBUG]  /Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home/bin/javac
>> 
>> Note that the release 9 classes were not added to the classpath, here. Just the main output directory.
>> 
>>> [DEBUG] Command line options:
>>> [DEBUG] -d /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes/META-INF/versions/11 -classpath /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes: -sourcepath /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java11:/Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations: /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java11/org/glassfish/pfl/basic/reflection/Bridge.java -s /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations -g -nowarn --release 11 -encoding UTF-8
>>> [DEBUG] incrementalBuildHelper#beforeRebuildExecution
>>> [INFO] Compiling 1 source file to /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes/META-INF/versions/11
>>> [DEBUG] incrementalBuildHelper#afterRebuildExecution
>>> [INFO] -------------------------------------------------------------
>>> [ERROR] COMPILATION ERROR :
>>> [INFO] -------------------------------------------------------------
>>> [ERROR] /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java11/org/glassfish/pfl/basic/reflection/Bridge.java:[51,34] error: cannot find symbol
>>>  symbol: class BridgeBase9
>>> [INFO] 1 error
>> 
>> 
>>> On Feb 12, 2019, at 1:08 PM, Robert Scholte <rf...@apache.org> wrote:
>>> 
>>> Hi Russ,
>>> 
>>> There's no way to configure this, the plugin will do it for you[1]
>>> 
>>> thanks,
>>> Robert
>>> 
>>> [1] https://github.com/apache/maven-compiler-plugin/blob/master/src/main/java/org/apache/maven/plugin/compiler/CompilerMojo.java#L328-L346
>>> 
>>> On Tue, 12 Feb 2019 18:56:52 +0100, Russell Gold <ru...@oracle.com> wrote:
>>> 
>>>> Version 3.8.0 of the maven-compiler-plugin supports a multiReleaseOutput option which can compile classes directly to the appropriate META-INF/versions/{release} directory, which is very nice. What I don’t see, though, is how to tell it to use the previous release as its dependency. That is, given:
>>>> 
>>>> src
>>>> |—— main
>>>>      |—— java
>>>>      |—— java9
>>>>      \—— java11
>>>> 
>>>> These directories will be compiled to:
>>>> 
>>>> target/classes, target/classes/META-INF/9 and target/classes/META-INF/11. But when I compile that last directory, I want to include target/classes/META-INF/9 in my class path, and I don’t see an obvious way to do it. It would be great if the plugin realized that this was necessary, but is there a way to configure it?
>>>> 
>>>> Thanks,
>>>> Russ
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>>> For additional commands, e-mail: users-help@maven.apache.org
>>> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: maven compiler plugin multiReleaseOutput option and previous versions

Posted by Robert Scholte <rf...@apache.org>.
I thought I had written an IT for it, but can't find it.
Looks like you found a bug.

Robert

On Tue, 12 Feb 2019 20:03:10 +0100, Russell Gold <ru...@oracle.com>  
wrote:

> But it doesn’t appear to be working for me.
>
>> [INFO] --- maven-compiler-plugin:3.8.0:compile (java9) @ pfl-basic ---
>> [DEBUG] Configuring mojo  
>> org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile from  
>> plugin realm  
>> ClassRealm[plugin>org.apache.maven.plugins:maven-compiler-plugin:3.8.0,  
>> parent: jdk.internal.loader.ClassLoaders$AppClassLoader@799f7e29]
>> [DEBUG] Configuring mojo  
>> 'org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile' with  
>> basic configurator -->
>> [DEBUG]   (f) basedir =  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic
>> [DEBUG]   (f) buildDirectory =  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target
>> [DEBUG]   (f) compilePath =  
>> [/Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes]
>> [DEBUG]   (f) compileSourceRoots =  
>> [/Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java9]
>> [DEBUG]   (f) compilerId = javac
>> [DEBUG]   (f) debug = true
>> [DEBUG]   (f) encoding = UTF-8
>> [DEBUG]   (f) failOnError = true
>> [DEBUG]   (f) failOnWarning = false
>> [DEBUG]   (f) forceJavacCompilerUse = false
>> [DEBUG]   (f) fork = false
>> [DEBUG]   (f) generatedSourcesDirectory =  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations
>> [DEBUG]   (f) jdkToolchain = {version=9}
>> [DEBUG]   (f) mojoExecution =  
>> org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile  
>> {execution: java9}
>> [DEBUG]   (f) multiReleaseOutput = true
>> [DEBUG]   (f) optimize = false
>> [DEBUG]   (f) outputDirectory =  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes
>> [DEBUG]   (f) parameters = false
>> [DEBUG]   (f) project = MavenProject:  
>> org.glassfish.pfl:pfl-basic:4.0.1-SNAPSHOT @  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/pom.xml
>> [DEBUG]   (f) projectArtifact =  
>> org.glassfish.pfl:pfl-basic:jar:4.0.1-SNAPSHOT
>> [DEBUG]   (s) release = 9
>> [DEBUG]   (f) session = org.apache.maven.execution.MavenSession@7640a5b1
>> [DEBUG]   (f) showDeprecation = false
>> [DEBUG]   (f) showWarnings = false
>> [DEBUG]   (f) skipMultiThreadWarning = false
>> [DEBUG]   (f) source = 1.7
>> [DEBUG]   (f) staleMillis = 0
>> [DEBUG]   (s) target = 1.7
>> [DEBUG]   (f) useIncrementalCompilation = true
>> [DEBUG]   (f) verbose = false
>> [DEBUG] -- end configuration --
>> [DEBUG] Using compiler 'javac'.
>> [DEBUG] Toolchain  
>> JDK[/Library/Java/JavaVirtualMachines/1.6.0_41-b02-445.jdk/Contents/Home]  
>> doesn't match required property: version
>> [DEBUG] Toolchain  
>> JDK[/Library/Java/JavaVirtualMachines/jdk1.7.0_65.jdk/Contents/Home]  
>> doesn't match required property: version
>> [DEBUG] Toolchain  
>> JDK[/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home]  
>> doesn't match required property: version
>> [DEBUG] Toolchain  
>> JDK[/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home]  
>> doesn't match required property: version
>> [INFO] Toolchain in maven-compiler-plugin:  
>> JDK[/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home]
>> [DEBUG] Adding  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations  
>> to compile source roots:
>>   /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java
>>   /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations
>> [DEBUG] New compile source roots:
>>   /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java
>>   /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations
>> [DEBUG] CompilerReuseStrategy: reuseCreated
>> [DEBUG] useIncrementalCompilation enabled
>> [DEBUG] Stale source detected:  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java9/org/glassfish/pfl/basic/reflection/Bridge.java
>> [DEBUG] Stale source detected:  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java9/org/glassfish/pfl/basic/reflection/BridgeBase9.java
>> [INFO] Changes detected - recompiling the module!
>> [DEBUG] Classpath:
>> [DEBUG]   
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes
>> [DEBUG] Source roots:
>> [DEBUG]   
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java9
>> [DEBUG] Excutable:
>> [DEBUG]   
>> /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home/bin/javac
>> [DEBUG] Command line options:
>> [DEBUG] -d  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes/META-INF/versions/9  
>> -classpath  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes:  
>> -sourcepath  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java9:/Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations:  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java9/org/glassfish/pfl/basic/reflection/Bridge.java  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java9/org/glassfish/pfl/basic/reflection/BridgeBase9.java  
>> -s  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations  
>> -g -nowarn --release 9 -encoding UTF-8
>> [DEBUG] incrementalBuildHelper#beforeRebuildExecution
>> [INFO] Compiling 2 source files to  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes/META-INF/versions/9
>> [DEBUG] incrementalBuildHelper#afterRebuildExecution
>> [WARNING]  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java9/org/glassfish/pfl/basic/reflection/BridgeBase9.java:[23,18]  
>> ReflectionFactory is internal proprietary API and may be removed in a  
>> future release
>> [WARNING]  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java9/org/glassfish/pfl/basic/reflection/BridgeBase9.java:[26,18]  
>> ReflectionFactory is internal proprietary API and may be removed in a  
>> future release
>> [WARNING]  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java9/org/glassfish/pfl/basic/reflection/BridgeBase9.java:[30,28]  
>> ReflectionFactory is internal proprietary API and may be removed in a  
>> future release
>> [INFO]
>> [INFO] --- maven-compiler-plugin:3.8.0:compile (java11) @ pfl-basic ---
>> [DEBUG] Configuring mojo  
>> org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile from  
>> plugin realm  
>> ClassRealm[plugin>org.apache.maven.plugins:maven-compiler-plugin:3.8.0,  
>> parent: jdk.internal.loader.ClassLoaders$AppClassLoader@799f7e29]
>> [DEBUG] Configuring mojo  
>> 'org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile' with  
>> basic configurator -->
>> [DEBUG]   (f) basedir =  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic
>> [DEBUG]   (f) buildDirectory =  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target
>> [DEBUG]   (f) compilePath =  
>> [/Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes]
>> [DEBUG]   (f) compileSourceRoots =  
>> [/Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java11]
>> [DEBUG]   (f) compilerId = javac
>> [DEBUG]   (f) debug = true
>> [DEBUG]   (f) encoding = UTF-8
>> [DEBUG]   (f) failOnError = true
>> [DEBUG]   (f) failOnWarning = false
>> [DEBUG]   (f) forceJavacCompilerUse = false
>> [DEBUG]   (f) fork = false
>> [DEBUG]   (f) generatedSourcesDirectory =  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations
>> [DEBUG]   (f) jdkToolchain = {version=11}
>> [DEBUG]   (f) mojoExecution =  
>> org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile  
>> {execution: java11}
>> [DEBUG]   (f) multiReleaseOutput = true
>> [DEBUG]   (f) optimize = false
>> [DEBUG]   (f) outputDirectory =  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes
>> [DEBUG]   (f) parameters = false
>> [DEBUG]   (f) project = MavenProject:  
>> org.glassfish.pfl:pfl-basic:4.0.1-SNAPSHOT @  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/pom.xml
>> [DEBUG]   (f) projectArtifact =  
>> org.glassfish.pfl:pfl-basic:jar:4.0.1-SNAPSHOT
>> [DEBUG]   (s) release = 11
>> [DEBUG]   (f) session = org.apache.maven.execution.MavenSession@7640a5b1
>> [DEBUG]   (f) showDeprecation = false
>> [DEBUG]   (f) showWarnings = false
>> [DEBUG]   (f) skipMultiThreadWarning = false
>> [DEBUG]   (f) source = 1.7
>> [DEBUG]   (f) staleMillis = 0
>> [DEBUG]   (s) target = 1.7
>> [DEBUG]   (f) useIncrementalCompilation = true
>> [DEBUG]   (f) verbose = false
>> [DEBUG] -- end configuration --
>> [DEBUG] Using compiler 'javac'.
>> [DEBUG] Toolchain  
>> JDK[/Library/Java/JavaVirtualMachines/1.6.0_41-b02-445.jdk/Contents/Home]  
>> doesn't match required property: version
>> [DEBUG] Toolchain  
>> JDK[/Library/Java/JavaVirtualMachines/jdk1.7.0_65.jdk/Contents/Home]  
>> doesn't match required property: version
>> [DEBUG] Toolchain  
>> JDK[/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home]  
>> doesn't match required property: version
>> [DEBUG] Toolchain  
>> JDK[/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home] doesn't  
>> match required property: version
>> [INFO] Toolchain in maven-compiler-plugin:  
>> JDK[/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home]
>> [DEBUG] Adding  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations  
>> to compile source roots:
>>   /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java
>>   /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations
>> [DEBUG] New compile source roots:
>>   /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java
>>   /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations
>> [DEBUG] CompilerReuseStrategy: reuseCreated
>> [DEBUG] useIncrementalCompilation enabled
>> [DEBUG] Stale source detected:  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java11/org/glassfish/pfl/basic/reflection/Bridge.java
>> [INFO] Changes detected - recompiling the module!
>> [DEBUG] Classpath:
>> [DEBUG]   
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes
>> [DEBUG] Source roots:
>> [DEBUG]   
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java11
>> [DEBUG] Excutable:
>> [DEBUG]   
>> /Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home/bin/javac
>
> Note that the release 9 classes were not added to the classpath, here.  
> Just the main output directory.
>
>> [DEBUG] Command line options:
>> [DEBUG] -d  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes/META-INF/versions/11  
>> -classpath  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes:  
>> -sourcepath  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java11:/Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations:  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java11/org/glassfish/pfl/basic/reflection/Bridge.java  
>> -s  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations  
>> -g -nowarn --release 11 -encoding UTF-8
>> [DEBUG] incrementalBuildHelper#beforeRebuildExecution
>> [INFO] Compiling 1 source file to  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes/META-INF/versions/11
>> [DEBUG] incrementalBuildHelper#afterRebuildExecution
>> [INFO] -------------------------------------------------------------
>> [ERROR] COMPILATION ERROR :
>> [INFO] -------------------------------------------------------------
>> [ERROR]  
>> /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java11/org/glassfish/pfl/basic/reflection/Bridge.java:[51,34]  
>> error: cannot find symbol
>>   symbol: class BridgeBase9
>> [INFO] 1 error
>
>
>> On Feb 12, 2019, at 1:08 PM, Robert Scholte <rf...@apache.org>  
>> wrote:
>>
>> Hi Russ,
>>
>> There's no way to configure this, the plugin will do it for you[1]
>>
>> thanks,
>> Robert
>>
>> [1]  
>> https://github.com/apache/maven-compiler-plugin/blob/master/src/main/java/org/apache/maven/plugin/compiler/CompilerMojo.java#L328-L346
>>
>> On Tue, 12 Feb 2019 18:56:52 +0100, Russell Gold  
>> <ru...@oracle.com> wrote:
>>
>>> Version 3.8.0 of the maven-compiler-plugin supports a  
>>> multiReleaseOutput option which can compile classes directly to the  
>>> appropriate META-INF/versions/{release} directory, which is very nice.  
>>> What I don’t see, though, is how to tell it to use the previous  
>>> release as its dependency. That is, given:
>>>
>>> src
>>>  |—— main
>>>       |—— java
>>>       |—— java9
>>>       \—— java11
>>>
>>> These directories will be compiled to:
>>>
>>> target/classes, target/classes/META-INF/9 and  
>>> target/classes/META-INF/11. But when I compile that last directory, I  
>>> want to include target/classes/META-INF/9 in my class path, and I  
>>> don’t see an obvious way to do it. It would be great if the plugin  
>>> realized that this was necessary, but is there a way to configure it?
>>>
>>> Thanks,
>>> Russ
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>> For additional commands, e-mail: users-help@maven.apache.org
>>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: maven compiler plugin multiReleaseOutput option and previous versions

Posted by Russell Gold <ru...@oracle.com>.
But it doesn’t appear to be working for me. 

> [INFO] --- maven-compiler-plugin:3.8.0:compile (java9) @ pfl-basic ---
> [DEBUG] Configuring mojo org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile from plugin realm ClassRealm[plugin>org.apache.maven.plugins:maven-compiler-plugin:3.8.0, parent: jdk.internal.loader.ClassLoaders$AppClassLoader@799f7e29]
> [DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile' with basic configurator -->
> [DEBUG]   (f) basedir = /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic
> [DEBUG]   (f) buildDirectory = /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target
> [DEBUG]   (f) compilePath = [/Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes]
> [DEBUG]   (f) compileSourceRoots = [/Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java9]
> [DEBUG]   (f) compilerId = javac
> [DEBUG]   (f) debug = true
> [DEBUG]   (f) encoding = UTF-8
> [DEBUG]   (f) failOnError = true
> [DEBUG]   (f) failOnWarning = false
> [DEBUG]   (f) forceJavacCompilerUse = false
> [DEBUG]   (f) fork = false
> [DEBUG]   (f) generatedSourcesDirectory = /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations
> [DEBUG]   (f) jdkToolchain = {version=9}
> [DEBUG]   (f) mojoExecution = org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile {execution: java9}
> [DEBUG]   (f) multiReleaseOutput = true
> [DEBUG]   (f) optimize = false
> [DEBUG]   (f) outputDirectory = /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes
> [DEBUG]   (f) parameters = false
> [DEBUG]   (f) project = MavenProject: org.glassfish.pfl:pfl-basic:4.0.1-SNAPSHOT @ /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/pom.xml
> [DEBUG]   (f) projectArtifact = org.glassfish.pfl:pfl-basic:jar:4.0.1-SNAPSHOT
> [DEBUG]   (s) release = 9
> [DEBUG]   (f) session = org.apache.maven.execution.MavenSession@7640a5b1
> [DEBUG]   (f) showDeprecation = false
> [DEBUG]   (f) showWarnings = false
> [DEBUG]   (f) skipMultiThreadWarning = false
> [DEBUG]   (f) source = 1.7
> [DEBUG]   (f) staleMillis = 0
> [DEBUG]   (s) target = 1.7
> [DEBUG]   (f) useIncrementalCompilation = true
> [DEBUG]   (f) verbose = false
> [DEBUG] -- end configuration --
> [DEBUG] Using compiler 'javac'.
> [DEBUG] Toolchain JDK[/Library/Java/JavaVirtualMachines/1.6.0_41-b02-445.jdk/Contents/Home] doesn't match required property: version
> [DEBUG] Toolchain JDK[/Library/Java/JavaVirtualMachines/jdk1.7.0_65.jdk/Contents/Home] doesn't match required property: version
> [DEBUG] Toolchain JDK[/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home] doesn't match required property: version
> [DEBUG] Toolchain JDK[/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home] doesn't match required property: version
> [INFO] Toolchain in maven-compiler-plugin: JDK[/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home]
> [DEBUG] Adding /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations to compile source roots:
>   /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java
>   /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations
> [DEBUG] New compile source roots:
>   /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java
>   /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations
> [DEBUG] CompilerReuseStrategy: reuseCreated
> [DEBUG] useIncrementalCompilation enabled
> [DEBUG] Stale source detected: /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java9/org/glassfish/pfl/basic/reflection/Bridge.java
> [DEBUG] Stale source detected: /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java9/org/glassfish/pfl/basic/reflection/BridgeBase9.java
> [INFO] Changes detected - recompiling the module!
> [DEBUG] Classpath:
> [DEBUG]  /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes
> [DEBUG] Source roots:
> [DEBUG]  /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java9
> [DEBUG] Excutable: 
> [DEBUG]  /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home/bin/javac
> [DEBUG] Command line options:
> [DEBUG] -d /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes/META-INF/versions/9 -classpath /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes: -sourcepath /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java9:/Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations: /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java9/org/glassfish/pfl/basic/reflection/Bridge.java /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java9/org/glassfish/pfl/basic/reflection/BridgeBase9.java -s /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations -g -nowarn --release 9 -encoding UTF-8
> [DEBUG] incrementalBuildHelper#beforeRebuildExecution
> [INFO] Compiling 2 source files to /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes/META-INF/versions/9
> [DEBUG] incrementalBuildHelper#afterRebuildExecution
> [WARNING] /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java9/org/glassfish/pfl/basic/reflection/BridgeBase9.java:[23,18] ReflectionFactory is internal proprietary API and may be removed in a future release
> [WARNING] /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java9/org/glassfish/pfl/basic/reflection/BridgeBase9.java:[26,18] ReflectionFactory is internal proprietary API and may be removed in a future release
> [WARNING] /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java9/org/glassfish/pfl/basic/reflection/BridgeBase9.java:[30,28] ReflectionFactory is internal proprietary API and may be removed in a future release
> [INFO] 
> [INFO] --- maven-compiler-plugin:3.8.0:compile (java11) @ pfl-basic ---
> [DEBUG] Configuring mojo org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile from plugin realm ClassRealm[plugin>org.apache.maven.plugins:maven-compiler-plugin:3.8.0, parent: jdk.internal.loader.ClassLoaders$AppClassLoader@799f7e29]
> [DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile' with basic configurator -->
> [DEBUG]   (f) basedir = /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic
> [DEBUG]   (f) buildDirectory = /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target
> [DEBUG]   (f) compilePath = [/Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes]
> [DEBUG]   (f) compileSourceRoots = [/Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java11]
> [DEBUG]   (f) compilerId = javac
> [DEBUG]   (f) debug = true
> [DEBUG]   (f) encoding = UTF-8
> [DEBUG]   (f) failOnError = true
> [DEBUG]   (f) failOnWarning = false
> [DEBUG]   (f) forceJavacCompilerUse = false
> [DEBUG]   (f) fork = false
> [DEBUG]   (f) generatedSourcesDirectory = /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations
> [DEBUG]   (f) jdkToolchain = {version=11}
> [DEBUG]   (f) mojoExecution = org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile {execution: java11}
> [DEBUG]   (f) multiReleaseOutput = true
> [DEBUG]   (f) optimize = false
> [DEBUG]   (f) outputDirectory = /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes
> [DEBUG]   (f) parameters = false
> [DEBUG]   (f) project = MavenProject: org.glassfish.pfl:pfl-basic:4.0.1-SNAPSHOT @ /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/pom.xml
> [DEBUG]   (f) projectArtifact = org.glassfish.pfl:pfl-basic:jar:4.0.1-SNAPSHOT
> [DEBUG]   (s) release = 11
> [DEBUG]   (f) session = org.apache.maven.execution.MavenSession@7640a5b1
> [DEBUG]   (f) showDeprecation = false
> [DEBUG]   (f) showWarnings = false
> [DEBUG]   (f) skipMultiThreadWarning = false
> [DEBUG]   (f) source = 1.7
> [DEBUG]   (f) staleMillis = 0
> [DEBUG]   (s) target = 1.7
> [DEBUG]   (f) useIncrementalCompilation = true
> [DEBUG]   (f) verbose = false
> [DEBUG] -- end configuration --
> [DEBUG] Using compiler 'javac'.
> [DEBUG] Toolchain JDK[/Library/Java/JavaVirtualMachines/1.6.0_41-b02-445.jdk/Contents/Home] doesn't match required property: version
> [DEBUG] Toolchain JDK[/Library/Java/JavaVirtualMachines/jdk1.7.0_65.jdk/Contents/Home] doesn't match required property: version
> [DEBUG] Toolchain JDK[/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home] doesn't match required property: version
> [DEBUG] Toolchain JDK[/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home] doesn't match required property: version
> [INFO] Toolchain in maven-compiler-plugin: JDK[/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home]
> [DEBUG] Adding /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations to compile source roots:
>   /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java
>   /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations
> [DEBUG] New compile source roots:
>   /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java
>   /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations
> [DEBUG] CompilerReuseStrategy: reuseCreated
> [DEBUG] useIncrementalCompilation enabled
> [DEBUG] Stale source detected: /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java11/org/glassfish/pfl/basic/reflection/Bridge.java
> [INFO] Changes detected - recompiling the module!
> [DEBUG] Classpath:
> [DEBUG]  /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes
> [DEBUG] Source roots:
> [DEBUG]  /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java11
> [DEBUG] Excutable: 
> [DEBUG]  /Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home/bin/javac

Note that the release 9 classes were not added to the classpath, here. Just the main output directory.

> [DEBUG] Command line options:
> [DEBUG] -d /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes/META-INF/versions/11 -classpath /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes: -sourcepath /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java11:/Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations: /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java11/org/glassfish/pfl/basic/reflection/Bridge.java -s /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/generated-sources/annotations -g -nowarn --release 11 -encoding UTF-8
> [DEBUG] incrementalBuildHelper#beforeRebuildExecution
> [INFO] Compiling 1 source file to /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/target/classes/META-INF/versions/11
> [DEBUG] incrementalBuildHelper#afterRebuildExecution
> [INFO] -------------------------------------------------------------
> [ERROR] COMPILATION ERROR : 
> [INFO] -------------------------------------------------------------
> [ERROR] /Users/rgold/projects/eclipse-ee4j/orb-gmbal-pfl/pfl-basic/src/main/java11/org/glassfish/pfl/basic/reflection/Bridge.java:[51,34] error: cannot find symbol
>   symbol: class BridgeBase9
> [INFO] 1 error


> On Feb 12, 2019, at 1:08 PM, Robert Scholte <rf...@apache.org> wrote:
> 
> Hi Russ,
> 
> There's no way to configure this, the plugin will do it for you[1]
> 
> thanks,
> Robert
> 
> [1] https://github.com/apache/maven-compiler-plugin/blob/master/src/main/java/org/apache/maven/plugin/compiler/CompilerMojo.java#L328-L346
> 
> On Tue, 12 Feb 2019 18:56:52 +0100, Russell Gold <ru...@oracle.com> wrote:
> 
>> Version 3.8.0 of the maven-compiler-plugin supports a multiReleaseOutput option which can compile classes directly to the appropriate META-INF/versions/{release} directory, which is very nice. What I don’t see, though, is how to tell it to use the previous release as its dependency. That is, given:
>> 
>> src
>>  |—— main
>>       |—— java
>>       |—— java9
>>       \—— java11
>> 
>> These directories will be compiled to:
>> 
>> target/classes, target/classes/META-INF/9 and target/classes/META-INF/11. But when I compile that last directory, I want to include target/classes/META-INF/9 in my class path, and I don’t see an obvious way to do it. It would be great if the plugin realized that this was necessary, but is there a way to configure it?
>> 
>> Thanks,
>> Russ
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
> 


Re: maven compiler plugin multiReleaseOutput option and previous versions

Posted by Robert Scholte <rf...@apache.org>.
Hi Russ,

There's no way to configure this, the plugin will do it for you[1]

thanks,
Robert

[1]  
https://github.com/apache/maven-compiler-plugin/blob/master/src/main/java/org/apache/maven/plugin/compiler/CompilerMojo.java#L328-L346

On Tue, 12 Feb 2019 18:56:52 +0100, Russell Gold <ru...@oracle.com>  
wrote:

> Version 3.8.0 of the maven-compiler-plugin supports a multiReleaseOutput  
> option which can compile classes directly to the appropriate  
> META-INF/versions/{release} directory, which is very nice. What I don’t  
> see, though, is how to tell it to use the previous release as its  
> dependency. That is, given:
>
> src
>   |—— main
>        |—— java
>        |—— java9
>        \—— java11
>
> These directories will be compiled to:
>
> target/classes, target/classes/META-INF/9 and  
> target/classes/META-INF/11. But when I compile that last directory, I  
> want to include target/classes/META-INF/9 in my class path, and I don’t  
> see an obvious way to do it. It would be great if the plugin realized  
> that this was necessary, but is there a way to configure it?
>
> Thanks,
> Russ

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org