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>