Introduce javaVersion property for maven.compiler.* configuration
diff --git a/docs/src/site/apt/index.apt.vm b/docs/src/site/apt/index.apt.vm
index 331383f..51054ae 100644
--- a/docs/src/site/apt/index.apt.vm
+++ b/docs/src/site/apt/index.apt.vm
@@ -63,6 +63,29 @@
** <<mailingLists>>: The POM sets up generic Apache announcement
lists. You should override this.
+ ** <<javaVersion>>: Java version used for compilation, default value is <<$context.get("javaVersion")>>.
+
+ You can override this property in your project POM to set different Java version for compilation.
+
+ The <<<javaVersion>>> property is used to set the <<<maven.compiler.*>>> properties, so they should not be set directly in your project POM.
+
+ They will be set automatically according to the JDK used for the project build:
+
+ *** for JDK 8 and older
+
++------+
+ <maven.compiler.source>\${javaVersion}</maven.compiler.source>
+ <maven.compiler.target>\${javaVersion}</maven.compiler.target>
++------+
+
+ *** for JDK 9 and newer
+
++------+
+ <maven.compiler.release>\${javaVersion}</maven.compiler.release>
++------+
+
+ []
+
* <<pluginManagement>>: The plugin management section specifies versions
of a list of plugins. See the {{{./plugin-management.html}Plugin Management report}} for
the complete list with versions.
@@ -77,11 +100,6 @@
[]
- ** The compiler plugin is set target <<Java $context.get("maven.compiler.target")>> (<<<maven.compiler.target>>> property)
- and assume $context.get("project.build.sourceEncoding") source encoding (<<<project.build.sourceEncoding>>> property). When being executed
- with JDK 9 or newer also <<<maven.compiler.release>>> is set to the value of property <<<maven.compiler.target>>>.
- Therefore its value must not start with <<<1.>>> (use for example <<<8>>> instead of <<<1.8>>>).
-
** The jar plugin is set to add default specification and implementation entries.
** The resources plugin is set for $context.get("project.build.sourceEncoding").
@@ -108,7 +126,7 @@
*** <<<minimalMavenBuildVersion>>> property: default value is <<Maven $context.get("minimalMavenBuildVersion")>>
- *** <<<minimalJavaBuildVersion>>> property: default value is <<Java $context.get("minimalJavaBuildVersion")>>
+ *** <<<minimalJavaBuildVersion>>> property: default is <<<javaVersion>>> property value.
[]
@@ -191,6 +209,9 @@
Notices
+ * Since version <<36>>, the <<<javaVersion>>> property has been introduced
+ to define the Java version used for the <<<maven.compiler.*>>> properties.
+
* Since version <<32>> <<<maven-site-plugin:attach-descriptor>>> was removed from <<<plugins>>> section.
Publishing a site descriptor is only needed in project parent poms, child projects not need publish it.
diff --git a/pom.xml b/pom.xml
index 436092d..bb46f71 100644
--- a/pom.xml
+++ b/pom.xml
@@ -96,11 +96,10 @@
<sourceReleaseAssemblyDescriptor>source-release</sourceReleaseAssemblyDescriptor>
<resourceBundleArtifact>apache-jar-resource-bundle</resourceBundleArtifact>
<gpg.useagent>true</gpg.useagent>
+ <!-- java version used to to set maven.compiler.* -->
+ <javaVersion>8</javaVersion>
<minimalMavenBuildVersion>3.6.3</minimalMavenBuildVersion>
- <minimalJavaBuildVersion>${maven.compiler.target}</minimalJavaBuildVersion>
- <maven.compiler.source>${maven.compiler.target}</maven.compiler.source>
- <!-- use version numbers without the "1." prefix (supported since javac 5) -->
- <maven.compiler.target>8</maven.compiler.target>
+ <minimalJavaBuildVersion>${javaVersion}</minimalJavaBuildVersion>
<!-- for surefire, failsafe and surefire-report -->
<surefire.version>3.5.4</surefire.version>
<assembly.tarLongFileMode>posix</assembly.tarLongFileMode>
@@ -520,9 +519,8 @@
<jdk>[,9)</jdk>
</activation>
<properties>
- <maven.compiler.source>${maven.compiler.target}</maven.compiler.source>
- <maven.compiler.target>8</maven.compiler.target>
- <minimalJavaBuildVersion>${maven.compiler.target}</minimalJavaBuildVersion>
+ <maven.compiler.source>${javaVersion}</maven.compiler.source>
+ <maven.compiler.target>${javaVersion}</maven.compiler.target>
</properties>
</profile>
<profile>
@@ -533,8 +531,7 @@
</activation>
<properties>
<!-- https://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-release.html, affects m-compiler-p and m-javadoc-p -->
- <maven.compiler.release>8</maven.compiler.release>
- <minimalJavaBuildVersion>${maven.compiler.release}</minimalJavaBuildVersion>
+ <maven.compiler.release>${javaVersion}</maven.compiler.release>
</properties>
</profile>
<profile>