Liam Miller-Cushon created MCOMPILER-596: --------------------------------------------
Summary: Support configuring javac's --system flag Key: MCOMPILER-596 URL: https://issues.apache.org/jira/browse/MCOMPILER-596 Project: Maven Compiler Plugin Issue Type: New Feature Reporter: Liam Miller-Cushon This is a feature request to support configuring javac's --system flag: [https://docs.oracle.com/en/java/javase/21/docs/specs/man/javac.html#option-system] --system can be set to the path to a JDK, and configures javac to read system APIs from that JDK. For example, when using javac from JDK 21 you could set `-source 11 -target 11 --system <path to JDK 11>` to compile Java 11 code. This is similar to setting `–release 11`, but supports use-cases that `–release` doesn't, for example `–system` (but not `–release`) can be combined with passing `--add-exports=` to javac. One alternative is to use toolchains and `<fork>true</fork>` to run on a different javac version corresponding to the target JDK version, which will implicitly use that JDK's APIs. However using fork is slower, and it requires using an older javac version. Using the latest javac version and cross-compiling with --system can be beneficial to get the latest compiler version and benefit from bug fixes and improvements in the latest versions of javac. As a straw-person configuration proposal, ideally system could be configured by referring to a jdk toolchain, for example with: {{<configuration>}} {{ <system>}} {{ <version>11</version>}} {{ <vendor>zulu</vendor>}} {{ </system>}} {{</configuration>}} -- This message was sent by Atlassian Jira (v8.20.10#820010)