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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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: [email protected]
For additional commands, e-mail: [email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to