Author: gboue Date: Sat Oct 22 18:11:12 2016 New Revision: 1766221 URL: http://svn.apache.org/viewvc?rev=1766221&view=rev Log: - Updating the "Setting the -source and -target of the Java Compiler": fixing broken link to Mojohaus, adding a note about the usage of "source", linking to the page about compiling with a different JDK. - Updating "Compile using a different JDK" documentation page to reference toolchains.
Modified: maven/plugins/trunk/maven-compiler-plugin/src/site/apt/examples/compile-using-different-jdk.apt.vm maven/plugins/trunk/maven-compiler-plugin/src/site/apt/examples/set-compiler-source-and-target.apt.vm Modified: maven/plugins/trunk/maven-compiler-plugin/src/site/apt/examples/compile-using-different-jdk.apt.vm URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-compiler-plugin/src/site/apt/examples/compile-using-different-jdk.apt.vm?rev=1766221&r1=1766220&r2=1766221&view=diff ============================================================================== --- maven/plugins/trunk/maven-compiler-plugin/src/site/apt/examples/compile-using-different-jdk.apt.vm (original) +++ maven/plugins/trunk/maven-compiler-plugin/src/site/apt/examples/compile-using-different-jdk.apt.vm Sat Oct 22 18:11:12 2016 @@ -28,6 +28,22 @@ Compiling Sources Using A Different JDK +* Using Maven Toolchains + + The preferable way to use a different JDK is to use the toolchains mechanism. During the build of a project, Maven, + without toolchains, will use the JDK to perform various steps, like compiling the Java sources, generate the Javadoc, + run unit tests or sign JARs. Each of those plugins need a tool of the JDK to operate: <<<javac>>>, <<<javadoc>>>, + <<<jarsigner>>>, etc. A toolchains is a way to specify the path to the JDK to use for all of those plugins in a + centralized manner, independant from the one running Maven itself. + + To set this up, refer to the {{{/guides/mini/guide-using-toolchains.html}Guide to Using Toolchains}}, which makes use + of the {{{/plugins/maven-toolchains-plugin/}Maven Toolchains Plugin}}. + +* Configuring the Compiler Plugin + + Outside of a toolchains, it is still possible to tell the Compiler Plugin the specific JDK to use during compilation. + Note that such configuration will be specific to this plugin, and will not affect others. + The <<<compilerVersion>>> parameter can be used to specify the version of the compiler that the plugin will use. However, you also need to set <<<fork>>> to <<<true>>> for this to work. For example: Modified: maven/plugins/trunk/maven-compiler-plugin/src/site/apt/examples/set-compiler-source-and-target.apt.vm URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-compiler-plugin/src/site/apt/examples/set-compiler-source-and-target.apt.vm?rev=1766221&r1=1766220&r2=1766221&view=diff ============================================================================== --- maven/plugins/trunk/maven-compiler-plugin/src/site/apt/examples/set-compiler-source-and-target.apt.vm (original) +++ maven/plugins/trunk/maven-compiler-plugin/src/site/apt/examples/set-compiler-source-and-target.apt.vm Sat Oct 22 18:11:12 2016 @@ -35,7 +35,20 @@ Setting the <<<-source>>> and <<<-target For example, if you want to use the Java 8 language features (<<<-source 1.8>>>) and also want the compiled classes to be compatible with JVM 1.8 (<<<-target 1.8>>>), - you can then put: + you can either add the two following properties, which are the default property names for the plugin parameters: + ++----- +<project> + [...] + <properties> + <maven.compiler.source>1.8</maven.compiler.source> + <maven.compiler.target>1.8</maven.compiler.target> + </properties> + [...] +</project> ++----- + + or configure the plugin directly: +----- <project> @@ -63,5 +76,8 @@ Setting the <<<-source>>> and <<<-target specified version. The pitfall is unintended usage of APIs that only exist in later JREs which would make your code fail at runtime with a linkage error. To avoid this issue, you can either configure the compiler's boot classpath to match the target JRE or use the - {{{http://mojo.codehaus.org/animal-sniffer-maven-plugin/}Animal Sniffer Maven Plugin}} to verify your code doesn't - use unintended APIs. + {{{http://www.mojohaus.org/animal-sniffer/animal-sniffer-maven-plugin/}Animal Sniffer Maven Plugin}} + to verify your code doesn't use unintended APIs. In the same way, setting the <<<source>>> option does not guarantee + that your code actually compiles on a JDK with the specified version. To compile your code with a specific JDK + version, different than the one used to launch Maven, refer to the + {{{../examples/compile-using-different-jdk.html}Compile Using A Different JDK}} example.