You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by eo...@apache.org on 2019/06/24 20:54:28 UTC

[maven-archetypes] branch MARCHETYPES-61 created (now 71b46be)

This is an automated email from the ASF dual-hosted git repository.

eolivelli pushed a change to branch MARCHETYPES-61
in repository https://gitbox.apache.org/repos/asf/maven-archetypes.git.


      at 71b46be  Enabled generating Java 9+ projects as well as using JUnit 5.x

This branch includes the following new commits:

     new 71b46be  Enabled generating Java 9+ projects as well as using JUnit 5.x

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[maven-archetypes] 01/01: Enabled generating Java 9+ projects as well as using JUnit 5.x

Posted by eo...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

eolivelli pushed a commit to branch MARCHETYPES-61
in repository https://gitbox.apache.org/repos/asf/maven-archetypes.git

commit 71b46beb266a12f8ac609fb04ca0e794ec08982f
Author: Behrang Saeedzadeh <be...@gmail.com>
AuthorDate: Sat Jun 15 20:52:53 2019 +1000

    Enabled generating Java 9+ projects as well as using JUnit 5.x
---
 .../resources-filtered/archetype-resources/pom.xml | 50 ++++++++++++++++++----
 .../META-INF/maven/archetype-metadata.xml          |  7 +--
 .../archetype-resources/src/main/java/App.java     |  9 ++--
 .../archetype-resources/src/test/java/AppTest.java | 30 ++++++++++---
 .../projects/it-basic/archetype.properties         |  1 +
 .../it-java-11-junit-5.4.2/archetype.properties    |  6 +++
 .../projects/it-java-11-junit-5.4.2/goal.txt       |  1 +
 .../it-java-11-junit-5.4.2/reference}/pom.xml      | 42 ++++++++++--------
 .../reference/src/main/java/it/pkg/App.java        | 10 +++++
 .../reference/src/test/java/it/pkg/AppTest.java    | 20 +++++++++
 .../{it-basic => it-java-11}/archetype.properties  |  3 +-
 .../test/resources/projects/it-java-11/goal.txt    |  1 +
 .../projects/it-java-11/reference}/pom.xml         | 32 +++++++-------
 .../reference/src/main/java/it/pkg/App.java        | 10 +++++
 .../reference/src/test/java/it/pkg}/AppTest.java   | 12 +++---
 .../it-java-8-junit-4.12/archetype.properties      |  6 +++
 .../projects/it-java-8-junit-4.12/goal.txt         |  1 +
 .../it-java-8-junit-4.12/reference}/pom.xml        | 33 +++++++-------
 .../reference/src/main/java/it/pkg/App.java        | 10 +++++
 .../reference/src/test/java/it/pkg}/AppTest.java   | 12 +++---
 .../{it-basic => it-java-8}/archetype.properties   |  3 +-
 .../src/test/resources/projects/it-java-8/goal.txt |  1 +
 .../projects/it-java-8/reference}/pom.xml          | 33 +++++++-------
 .../reference/src/main/java/it/pkg/App.java        | 10 +++++
 .../reference/src/test/java/it/pkg}/AppTest.java   | 12 +++---
 25 files changed, 242 insertions(+), 113 deletions(-)

diff --git a/maven-archetype-quickstart/src/main/resources-filtered/archetype-resources/pom.xml b/maven-archetype-quickstart/src/main/resources-filtered/archetype-resources/pom.xml
index 7a6bdf2..e53d66e 100644
--- a/maven-archetype-quickstart/src/main/resources-filtered/archetype-resources/pom.xml
+++ b/maven-archetype-quickstart/src/main/resources-filtered/archetype-resources/pom.xml
@@ -1,5 +1,35 @@
 <?xml version="1.0" encoding="UTF-8"?>
-
+#macro( compilerProperties $ver )
+#if ($ver == "9" || $ver == "10" || $ver == "11" || $ver == "12" || $ver == "13" || $ver == "14")
+    <maven.compiler.release>${ver}</maven.compiler.release>
+#else
+    <maven.compiler.source>${ver}</maven.compiler.source>
+    <maven.compiler.target>${ver}</maven.compiler.target>
+#end
+#end
+#macro( junit $ver )
+#if ( $ver.startsWith("4.") )
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>${ver}</version>
+      <scope>test</scope>
+    </dependency>
+#elseif ( $ver.startsWith("5.") )
+    <dependency>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter-api</artifactId>
+      <version>${ver}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter-engine</artifactId>
+      <version>${ver}</version>
+      <scope>test</scope>
+    </dependency>
+#end
+#end
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
@@ -14,17 +44,19 @@
 
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <maven.compiler.source>1.7</maven.compiler.source>
-    <maven.compiler.target>1.7</maven.compiler.target>
+#if ( ${javaCompilerVersion} == $null )
+#compilerProperties( "1.7" )
+#else
+#compilerProperties( ${javaCompilerVersion} )
+#end
   </properties>
 
   <dependencies>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>4.11</version>
-      <scope>test</scope>
-    </dependency>
+#if ( ${junitVersion} == $null )
+#junit( "4.12" )
+#else
+#junit( ${junitVersion} )
+#end
   </dependencies>
 
   <build>
diff --git a/maven-archetype-quickstart/src/main/resources/META-INF/maven/archetype-metadata.xml b/maven-archetype-quickstart/src/main/resources/META-INF/maven/archetype-metadata.xml
index 6d9931a..b26c264 100644
--- a/maven-archetype-quickstart/src/main/resources/META-INF/maven/archetype-metadata.xml
+++ b/maven-archetype-quickstart/src/main/resources/META-INF/maven/archetype-metadata.xml
@@ -18,9 +18,10 @@ KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
 -->
-<archetype-descriptor xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd"
-  name="quickstart" partial="false">
+<archetype-descriptor xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0" 
+                      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                      xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd"
+                      name="quickstart" partial="false">
 
   <fileSets>
     <fileSet filtered="true" packaged="true">
diff --git a/maven-archetype-quickstart/src/main/resources/archetype-resources/src/main/java/App.java b/maven-archetype-quickstart/src/main/resources/archetype-resources/src/main/java/App.java
index c09c3ce..7a3b20d 100644
--- a/maven-archetype-quickstart/src/main/resources/archetype-resources/src/main/java/App.java
+++ b/maven-archetype-quickstart/src/main/resources/archetype-resources/src/main/java/App.java
@@ -2,12 +2,9 @@ package $package;
 
 /**
  * Hello world!
- *
  */
-public class App 
-{
-    public static void main( String[] args )
-    {
-        System.out.println( "Hello World!" );
+public class App {
+    public static void main(String[] args) {
+        System.out.println("Hello World!");
     }
 }
diff --git a/maven-archetype-quickstart/src/main/resources/archetype-resources/src/test/java/AppTest.java b/maven-archetype-quickstart/src/main/resources/archetype-resources/src/test/java/AppTest.java
index 81c77d3..f3855ac 100644
--- a/maven-archetype-quickstart/src/main/resources/archetype-resources/src/test/java/AppTest.java
+++ b/maven-archetype-quickstart/src/main/resources/archetype-resources/src/test/java/AppTest.java
@@ -1,5 +1,6 @@
 package $package;
 
+#if ( $junitVersion == $null || $junitVersion.startsWith("4."))
 import static org.junit.Assert.assertTrue;
 
 import org.junit.Test;
@@ -7,14 +8,33 @@ import org.junit.Test;
 /**
  * Unit test for simple App.
  */
-public class AppTest 
-{
+public class AppTest {
+
+    /**
+     * Rigorous Test :-)
+     */
+    @Test
+    public void shouldAnswerWithTrue() {
+        assertTrue(true);
+    }
+}
+#else
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import org.junit.jupiter.api.Test;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest {
+
     /**
      * Rigorous Test :-)
      */
     @Test
-    public void shouldAnswerWithTrue()
-    {
-        assertTrue( true );
+    public void shouldAnswerWithTrue() {
+        assertTrue(true);
     }
 }
+#end
+
diff --git a/maven-archetype-quickstart/src/test/resources/projects/it-basic/archetype.properties b/maven-archetype-quickstart/src/test/resources/projects/it-basic/archetype.properties
index 51202b4..c123e46 100644
--- a/maven-archetype-quickstart/src/test/resources/projects/it-basic/archetype.properties
+++ b/maven-archetype-quickstart/src/test/resources/projects/it-basic/archetype.properties
@@ -2,3 +2,4 @@ groupId=archetype.it
 artifactId=basic-quickstart
 version=0.1-SNAPSHOT
 package=it.pkg
+
diff --git a/maven-archetype-quickstart/src/test/resources/projects/it-java-11-junit-5.4.2/archetype.properties b/maven-archetype-quickstart/src/test/resources/projects/it-java-11-junit-5.4.2/archetype.properties
new file mode 100644
index 0000000..b1ad672
--- /dev/null
+++ b/maven-archetype-quickstart/src/test/resources/projects/it-java-11-junit-5.4.2/archetype.properties
@@ -0,0 +1,6 @@
+groupId=archetype.it
+artifactId=java-11-junit-542-quickstart
+version=0.1-SNAPSHOT
+package=it.pkg
+javaCompilerVersion=11
+junitVersion=5.4.2
diff --git a/maven-archetype-quickstart/src/test/resources/projects/it-java-11-junit-5.4.2/goal.txt b/maven-archetype-quickstart/src/test/resources/projects/it-java-11-junit-5.4.2/goal.txt
new file mode 100644
index 0000000..1d8e0fd
--- /dev/null
+++ b/maven-archetype-quickstart/src/test/resources/projects/it-java-11-junit-5.4.2/goal.txt
@@ -0,0 +1 @@
+validate
\ No newline at end of file
diff --git a/maven-archetype-quickstart/src/main/resources-filtered/archetype-resources/pom.xml b/maven-archetype-quickstart/src/test/resources/projects/it-java-11-junit-5.4.2/reference/pom.xml
similarity index 70%
copy from maven-archetype-quickstart/src/main/resources-filtered/archetype-resources/pom.xml
copy to maven-archetype-quickstart/src/test/resources/projects/it-java-11-junit-5.4.2/reference/pom.xml
index 7a6bdf2..3d46f1b 100644
--- a/maven-archetype-quickstart/src/main/resources-filtered/archetype-resources/pom.xml
+++ b/maven-archetype-quickstart/src/test/resources/projects/it-java-11-junit-5.4.2/reference/pom.xml
@@ -1,28 +1,32 @@
 <?xml version="1.0" encoding="UTF-8"?>
-
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
-  <groupId>\${groupId}</groupId>
-  <artifactId>\${artifactId}</artifactId>
-  <version>\${version}</version>
+  <groupId>archetype.it</groupId>
+  <artifactId>java-11-junit-542-quickstart</artifactId>
+  <version>0.1-SNAPSHOT</version>
 
-  <name>\${artifactId}</name>
+  <name>java-11-junit-542-quickstart</name>
   <!-- FIXME change it to the project's website -->
   <url>http://www.example.com</url>
 
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <maven.compiler.source>1.7</maven.compiler.source>
-    <maven.compiler.target>1.7</maven.compiler.target>
+    <maven.compiler.release>11</maven.compiler.release>
   </properties>
 
   <dependencies>
     <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>4.11</version>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter-api</artifactId>
+      <version>5.4.2</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter-engine</artifactId>
+      <version>5.4.2</version>
       <scope>test</scope>
     </dependency>
   </dependencies>
@@ -33,41 +37,41 @@
         <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
         <plugin>
           <artifactId>maven-clean-plugin</artifactId>
-          <version>${clean}</version>
+          <version>3.1.0</version>
         </plugin>
         <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
         <plugin>
           <artifactId>maven-resources-plugin</artifactId>
-          <version>${resources}</version>
+          <version>3.0.2</version>
         </plugin>
         <plugin>
           <artifactId>maven-compiler-plugin</artifactId>
-          <version>${compiler}</version>
+          <version>3.8.0</version>
         </plugin>
         <plugin>
           <artifactId>maven-surefire-plugin</artifactId>
-          <version>${surefire}</version>
+          <version>2.22.1</version>
         </plugin>
         <plugin>
           <artifactId>maven-jar-plugin</artifactId>
-          <version>${jar}</version>
+          <version>3.0.2</version>
         </plugin>
         <plugin>
           <artifactId>maven-install-plugin</artifactId>
-          <version>${install}</version>
+          <version>2.5.2</version>
         </plugin>
         <plugin>
           <artifactId>maven-deploy-plugin</artifactId>
-          <version>${deploy}</version>
+          <version>2.8.2</version>
         </plugin>
         <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
         <plugin>
           <artifactId>maven-site-plugin</artifactId>
-          <version>${site}</version>
+          <version>3.7.1</version>
         </plugin>
         <plugin>
           <artifactId>maven-project-info-reports-plugin</artifactId>
-          <version>${pir}</version>
+          <version>3.0.0</version>
         </plugin>
       </plugins>
     </pluginManagement>
diff --git a/maven-archetype-quickstart/src/test/resources/projects/it-java-11-junit-5.4.2/reference/src/main/java/it/pkg/App.java b/maven-archetype-quickstart/src/test/resources/projects/it-java-11-junit-5.4.2/reference/src/main/java/it/pkg/App.java
new file mode 100644
index 0000000..02c5517
--- /dev/null
+++ b/maven-archetype-quickstart/src/test/resources/projects/it-java-11-junit-5.4.2/reference/src/main/java/it/pkg/App.java
@@ -0,0 +1,10 @@
+package it.pkg;
+
+/**
+ * Hello world!
+ */
+public class App {
+    public static void main(String[] args) {
+        System.out.println("Hello World!");
+    }
+}
diff --git a/maven-archetype-quickstart/src/test/resources/projects/it-java-11-junit-5.4.2/reference/src/test/java/it/pkg/AppTest.java b/maven-archetype-quickstart/src/test/resources/projects/it-java-11-junit-5.4.2/reference/src/test/java/it/pkg/AppTest.java
new file mode 100644
index 0000000..a15ec97
--- /dev/null
+++ b/maven-archetype-quickstart/src/test/resources/projects/it-java-11-junit-5.4.2/reference/src/test/java/it/pkg/AppTest.java
@@ -0,0 +1,20 @@
+package it.pkg;
+
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import org.junit.jupiter.api.Test;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest {
+
+    /**
+     * Rigorous Test :-)
+     */
+    @Test
+    public void shouldAnswerWithTrue() {
+        assertTrue(true);
+    }
+}
+
diff --git a/maven-archetype-quickstart/src/test/resources/projects/it-basic/archetype.properties b/maven-archetype-quickstart/src/test/resources/projects/it-java-11/archetype.properties
similarity index 51%
copy from maven-archetype-quickstart/src/test/resources/projects/it-basic/archetype.properties
copy to maven-archetype-quickstart/src/test/resources/projects/it-java-11/archetype.properties
index 51202b4..61d6c7d 100644
--- a/maven-archetype-quickstart/src/test/resources/projects/it-basic/archetype.properties
+++ b/maven-archetype-quickstart/src/test/resources/projects/it-java-11/archetype.properties
@@ -1,4 +1,5 @@
 groupId=archetype.it
-artifactId=basic-quickstart
+artifactId=java-11-quickstart
 version=0.1-SNAPSHOT
 package=it.pkg
+javaCompilerVersion=11
diff --git a/maven-archetype-quickstart/src/test/resources/projects/it-java-11/goal.txt b/maven-archetype-quickstart/src/test/resources/projects/it-java-11/goal.txt
new file mode 100644
index 0000000..1d8e0fd
--- /dev/null
+++ b/maven-archetype-quickstart/src/test/resources/projects/it-java-11/goal.txt
@@ -0,0 +1 @@
+validate
\ No newline at end of file
diff --git a/maven-archetype-quickstart/src/main/resources-filtered/archetype-resources/pom.xml b/maven-archetype-quickstart/src/test/resources/projects/it-java-11/reference/pom.xml
similarity index 76%
copy from maven-archetype-quickstart/src/main/resources-filtered/archetype-resources/pom.xml
copy to maven-archetype-quickstart/src/test/resources/projects/it-java-11/reference/pom.xml
index 7a6bdf2..17401fb 100644
--- a/maven-archetype-quickstart/src/main/resources-filtered/archetype-resources/pom.xml
+++ b/maven-archetype-quickstart/src/test/resources/projects/it-java-11/reference/pom.xml
@@ -1,28 +1,26 @@
 <?xml version="1.0" encoding="UTF-8"?>
-
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
-  <groupId>\${groupId}</groupId>
-  <artifactId>\${artifactId}</artifactId>
-  <version>\${version}</version>
+  <groupId>archetype.it</groupId>
+  <artifactId>java-11-quickstart</artifactId>
+  <version>0.1-SNAPSHOT</version>
 
-  <name>\${artifactId}</name>
+  <name>java-11-quickstart</name>
   <!-- FIXME change it to the project's website -->
   <url>http://www.example.com</url>
 
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <maven.compiler.source>1.7</maven.compiler.source>
-    <maven.compiler.target>1.7</maven.compiler.target>
+    <maven.compiler.release>11</maven.compiler.release>
   </properties>
 
   <dependencies>
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
-      <version>4.11</version>
+      <version>4.12</version>
       <scope>test</scope>
     </dependency>
   </dependencies>
@@ -33,41 +31,41 @@
         <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
         <plugin>
           <artifactId>maven-clean-plugin</artifactId>
-          <version>${clean}</version>
+          <version>3.1.0</version>
         </plugin>
         <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
         <plugin>
           <artifactId>maven-resources-plugin</artifactId>
-          <version>${resources}</version>
+          <version>3.0.2</version>
         </plugin>
         <plugin>
           <artifactId>maven-compiler-plugin</artifactId>
-          <version>${compiler}</version>
+          <version>3.8.0</version>
         </plugin>
         <plugin>
           <artifactId>maven-surefire-plugin</artifactId>
-          <version>${surefire}</version>
+          <version>2.22.1</version>
         </plugin>
         <plugin>
           <artifactId>maven-jar-plugin</artifactId>
-          <version>${jar}</version>
+          <version>3.0.2</version>
         </plugin>
         <plugin>
           <artifactId>maven-install-plugin</artifactId>
-          <version>${install}</version>
+          <version>2.5.2</version>
         </plugin>
         <plugin>
           <artifactId>maven-deploy-plugin</artifactId>
-          <version>${deploy}</version>
+          <version>2.8.2</version>
         </plugin>
         <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
         <plugin>
           <artifactId>maven-site-plugin</artifactId>
-          <version>${site}</version>
+          <version>3.7.1</version>
         </plugin>
         <plugin>
           <artifactId>maven-project-info-reports-plugin</artifactId>
-          <version>${pir}</version>
+          <version>3.0.0</version>
         </plugin>
       </plugins>
     </pluginManagement>
diff --git a/maven-archetype-quickstart/src/test/resources/projects/it-java-11/reference/src/main/java/it/pkg/App.java b/maven-archetype-quickstart/src/test/resources/projects/it-java-11/reference/src/main/java/it/pkg/App.java
new file mode 100644
index 0000000..02c5517
--- /dev/null
+++ b/maven-archetype-quickstart/src/test/resources/projects/it-java-11/reference/src/main/java/it/pkg/App.java
@@ -0,0 +1,10 @@
+package it.pkg;
+
+/**
+ * Hello world!
+ */
+public class App {
+    public static void main(String[] args) {
+        System.out.println("Hello World!");
+    }
+}
diff --git a/maven-archetype-quickstart/src/main/resources/archetype-resources/src/test/java/AppTest.java b/maven-archetype-quickstart/src/test/resources/projects/it-java-11/reference/src/test/java/it/pkg/AppTest.java
similarity index 58%
copy from maven-archetype-quickstart/src/main/resources/archetype-resources/src/test/java/AppTest.java
copy to maven-archetype-quickstart/src/test/resources/projects/it-java-11/reference/src/test/java/it/pkg/AppTest.java
index 81c77d3..ea6dd72 100644
--- a/maven-archetype-quickstart/src/main/resources/archetype-resources/src/test/java/AppTest.java
+++ b/maven-archetype-quickstart/src/test/resources/projects/it-java-11/reference/src/test/java/it/pkg/AppTest.java
@@ -1,4 +1,4 @@
-package $package;
+package it.pkg;
 
 import static org.junit.Assert.assertTrue;
 
@@ -7,14 +7,14 @@ import org.junit.Test;
 /**
  * Unit test for simple App.
  */
-public class AppTest 
-{
+public class AppTest {
+
     /**
      * Rigorous Test :-)
      */
     @Test
-    public void shouldAnswerWithTrue()
-    {
-        assertTrue( true );
+    public void shouldAnswerWithTrue() {
+        assertTrue(true);
     }
 }
+
diff --git a/maven-archetype-quickstart/src/test/resources/projects/it-java-8-junit-4.12/archetype.properties b/maven-archetype-quickstart/src/test/resources/projects/it-java-8-junit-4.12/archetype.properties
new file mode 100644
index 0000000..64ac86a
--- /dev/null
+++ b/maven-archetype-quickstart/src/test/resources/projects/it-java-8-junit-4.12/archetype.properties
@@ -0,0 +1,6 @@
+groupId=archetype.it
+artifactId=java-8-junit-412-quickstart
+version=0.1-SNAPSHOT
+package=it.pkg
+javaCompilerVersion=1.8
+junitVersion=4.12
diff --git a/maven-archetype-quickstart/src/test/resources/projects/it-java-8-junit-4.12/goal.txt b/maven-archetype-quickstart/src/test/resources/projects/it-java-8-junit-4.12/goal.txt
new file mode 100644
index 0000000..1d8e0fd
--- /dev/null
+++ b/maven-archetype-quickstart/src/test/resources/projects/it-java-8-junit-4.12/goal.txt
@@ -0,0 +1 @@
+validate
\ No newline at end of file
diff --git a/maven-archetype-quickstart/src/main/resources-filtered/archetype-resources/pom.xml b/maven-archetype-quickstart/src/test/resources/projects/it-java-8-junit-4.12/reference/pom.xml
similarity index 76%
copy from maven-archetype-quickstart/src/main/resources-filtered/archetype-resources/pom.xml
copy to maven-archetype-quickstart/src/test/resources/projects/it-java-8-junit-4.12/reference/pom.xml
index 7a6bdf2..2f61a5b 100644
--- a/maven-archetype-quickstart/src/main/resources-filtered/archetype-resources/pom.xml
+++ b/maven-archetype-quickstart/src/test/resources/projects/it-java-8-junit-4.12/reference/pom.xml
@@ -1,28 +1,27 @@
 <?xml version="1.0" encoding="UTF-8"?>
-
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
-  <groupId>\${groupId}</groupId>
-  <artifactId>\${artifactId}</artifactId>
-  <version>\${version}</version>
+  <groupId>archetype.it</groupId>
+  <artifactId>java-8-junit-412-quickstart</artifactId>
+  <version>0.1-SNAPSHOT</version>
 
-  <name>\${artifactId}</name>
+  <name>java-8-junit-412-quickstart</name>
   <!-- FIXME change it to the project's website -->
   <url>http://www.example.com</url>
 
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <maven.compiler.source>1.7</maven.compiler.source>
-    <maven.compiler.target>1.7</maven.compiler.target>
+    <maven.compiler.source>1.8</maven.compiler.source>
+    <maven.compiler.target>1.8</maven.compiler.target>
   </properties>
 
   <dependencies>
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
-      <version>4.11</version>
+      <version>4.12</version>
       <scope>test</scope>
     </dependency>
   </dependencies>
@@ -33,41 +32,41 @@
         <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
         <plugin>
           <artifactId>maven-clean-plugin</artifactId>
-          <version>${clean}</version>
+          <version>3.1.0</version>
         </plugin>
         <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
         <plugin>
           <artifactId>maven-resources-plugin</artifactId>
-          <version>${resources}</version>
+          <version>3.0.2</version>
         </plugin>
         <plugin>
           <artifactId>maven-compiler-plugin</artifactId>
-          <version>${compiler}</version>
+          <version>3.8.0</version>
         </plugin>
         <plugin>
           <artifactId>maven-surefire-plugin</artifactId>
-          <version>${surefire}</version>
+          <version>2.22.1</version>
         </plugin>
         <plugin>
           <artifactId>maven-jar-plugin</artifactId>
-          <version>${jar}</version>
+          <version>3.0.2</version>
         </plugin>
         <plugin>
           <artifactId>maven-install-plugin</artifactId>
-          <version>${install}</version>
+          <version>2.5.2</version>
         </plugin>
         <plugin>
           <artifactId>maven-deploy-plugin</artifactId>
-          <version>${deploy}</version>
+          <version>2.8.2</version>
         </plugin>
         <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
         <plugin>
           <artifactId>maven-site-plugin</artifactId>
-          <version>${site}</version>
+          <version>3.7.1</version>
         </plugin>
         <plugin>
           <artifactId>maven-project-info-reports-plugin</artifactId>
-          <version>${pir}</version>
+          <version>3.0.0</version>
         </plugin>
       </plugins>
     </pluginManagement>
diff --git a/maven-archetype-quickstart/src/test/resources/projects/it-java-8-junit-4.12/reference/src/main/java/it/pkg/App.java b/maven-archetype-quickstart/src/test/resources/projects/it-java-8-junit-4.12/reference/src/main/java/it/pkg/App.java
new file mode 100644
index 0000000..02c5517
--- /dev/null
+++ b/maven-archetype-quickstart/src/test/resources/projects/it-java-8-junit-4.12/reference/src/main/java/it/pkg/App.java
@@ -0,0 +1,10 @@
+package it.pkg;
+
+/**
+ * Hello world!
+ */
+public class App {
+    public static void main(String[] args) {
+        System.out.println("Hello World!");
+    }
+}
diff --git a/maven-archetype-quickstart/src/main/resources/archetype-resources/src/test/java/AppTest.java b/maven-archetype-quickstart/src/test/resources/projects/it-java-8-junit-4.12/reference/src/test/java/it/pkg/AppTest.java
similarity index 58%
copy from maven-archetype-quickstart/src/main/resources/archetype-resources/src/test/java/AppTest.java
copy to maven-archetype-quickstart/src/test/resources/projects/it-java-8-junit-4.12/reference/src/test/java/it/pkg/AppTest.java
index 81c77d3..ea6dd72 100644
--- a/maven-archetype-quickstart/src/main/resources/archetype-resources/src/test/java/AppTest.java
+++ b/maven-archetype-quickstart/src/test/resources/projects/it-java-8-junit-4.12/reference/src/test/java/it/pkg/AppTest.java
@@ -1,4 +1,4 @@
-package $package;
+package it.pkg;
 
 import static org.junit.Assert.assertTrue;
 
@@ -7,14 +7,14 @@ import org.junit.Test;
 /**
  * Unit test for simple App.
  */
-public class AppTest 
-{
+public class AppTest {
+
     /**
      * Rigorous Test :-)
      */
     @Test
-    public void shouldAnswerWithTrue()
-    {
-        assertTrue( true );
+    public void shouldAnswerWithTrue() {
+        assertTrue(true);
     }
 }
+
diff --git a/maven-archetype-quickstart/src/test/resources/projects/it-basic/archetype.properties b/maven-archetype-quickstart/src/test/resources/projects/it-java-8/archetype.properties
similarity index 51%
copy from maven-archetype-quickstart/src/test/resources/projects/it-basic/archetype.properties
copy to maven-archetype-quickstart/src/test/resources/projects/it-java-8/archetype.properties
index 51202b4..c8706aa 100644
--- a/maven-archetype-quickstart/src/test/resources/projects/it-basic/archetype.properties
+++ b/maven-archetype-quickstart/src/test/resources/projects/it-java-8/archetype.properties
@@ -1,4 +1,5 @@
 groupId=archetype.it
-artifactId=basic-quickstart
+artifactId=java-8-quickstart
 version=0.1-SNAPSHOT
 package=it.pkg
+javaCompilerVersion=1.8
diff --git a/maven-archetype-quickstart/src/test/resources/projects/it-java-8/goal.txt b/maven-archetype-quickstart/src/test/resources/projects/it-java-8/goal.txt
new file mode 100644
index 0000000..1d8e0fd
--- /dev/null
+++ b/maven-archetype-quickstart/src/test/resources/projects/it-java-8/goal.txt
@@ -0,0 +1 @@
+validate
\ No newline at end of file
diff --git a/maven-archetype-quickstart/src/main/resources-filtered/archetype-resources/pom.xml b/maven-archetype-quickstart/src/test/resources/projects/it-java-8/reference/pom.xml
similarity index 76%
copy from maven-archetype-quickstart/src/main/resources-filtered/archetype-resources/pom.xml
copy to maven-archetype-quickstart/src/test/resources/projects/it-java-8/reference/pom.xml
index 7a6bdf2..6b1c08a 100644
--- a/maven-archetype-quickstart/src/main/resources-filtered/archetype-resources/pom.xml
+++ b/maven-archetype-quickstart/src/test/resources/projects/it-java-8/reference/pom.xml
@@ -1,28 +1,27 @@
 <?xml version="1.0" encoding="UTF-8"?>
-
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
-  <groupId>\${groupId}</groupId>
-  <artifactId>\${artifactId}</artifactId>
-  <version>\${version}</version>
+  <groupId>archetype.it</groupId>
+  <artifactId>java-8-quickstart</artifactId>
+  <version>0.1-SNAPSHOT</version>
 
-  <name>\${artifactId}</name>
+  <name>java-8-quickstart</name>
   <!-- FIXME change it to the project's website -->
   <url>http://www.example.com</url>
 
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <maven.compiler.source>1.7</maven.compiler.source>
-    <maven.compiler.target>1.7</maven.compiler.target>
+    <maven.compiler.source>1.8</maven.compiler.source>
+    <maven.compiler.target>1.8</maven.compiler.target>
   </properties>
 
   <dependencies>
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
-      <version>4.11</version>
+      <version>4.12</version>
       <scope>test</scope>
     </dependency>
   </dependencies>
@@ -33,41 +32,41 @@
         <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
         <plugin>
           <artifactId>maven-clean-plugin</artifactId>
-          <version>${clean}</version>
+          <version>3.1.0</version>
         </plugin>
         <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
         <plugin>
           <artifactId>maven-resources-plugin</artifactId>
-          <version>${resources}</version>
+          <version>3.0.2</version>
         </plugin>
         <plugin>
           <artifactId>maven-compiler-plugin</artifactId>
-          <version>${compiler}</version>
+          <version>3.8.0</version>
         </plugin>
         <plugin>
           <artifactId>maven-surefire-plugin</artifactId>
-          <version>${surefire}</version>
+          <version>2.22.1</version>
         </plugin>
         <plugin>
           <artifactId>maven-jar-plugin</artifactId>
-          <version>${jar}</version>
+          <version>3.0.2</version>
         </plugin>
         <plugin>
           <artifactId>maven-install-plugin</artifactId>
-          <version>${install}</version>
+          <version>2.5.2</version>
         </plugin>
         <plugin>
           <artifactId>maven-deploy-plugin</artifactId>
-          <version>${deploy}</version>
+          <version>2.8.2</version>
         </plugin>
         <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
         <plugin>
           <artifactId>maven-site-plugin</artifactId>
-          <version>${site}</version>
+          <version>3.7.1</version>
         </plugin>
         <plugin>
           <artifactId>maven-project-info-reports-plugin</artifactId>
-          <version>${pir}</version>
+          <version>3.0.0</version>
         </plugin>
       </plugins>
     </pluginManagement>
diff --git a/maven-archetype-quickstart/src/test/resources/projects/it-java-8/reference/src/main/java/it/pkg/App.java b/maven-archetype-quickstart/src/test/resources/projects/it-java-8/reference/src/main/java/it/pkg/App.java
new file mode 100644
index 0000000..02c5517
--- /dev/null
+++ b/maven-archetype-quickstart/src/test/resources/projects/it-java-8/reference/src/main/java/it/pkg/App.java
@@ -0,0 +1,10 @@
+package it.pkg;
+
+/**
+ * Hello world!
+ */
+public class App {
+    public static void main(String[] args) {
+        System.out.println("Hello World!");
+    }
+}
diff --git a/maven-archetype-quickstart/src/main/resources/archetype-resources/src/test/java/AppTest.java b/maven-archetype-quickstart/src/test/resources/projects/it-java-8/reference/src/test/java/it/pkg/AppTest.java
similarity index 58%
copy from maven-archetype-quickstart/src/main/resources/archetype-resources/src/test/java/AppTest.java
copy to maven-archetype-quickstart/src/test/resources/projects/it-java-8/reference/src/test/java/it/pkg/AppTest.java
index 81c77d3..ea6dd72 100644
--- a/maven-archetype-quickstart/src/main/resources/archetype-resources/src/test/java/AppTest.java
+++ b/maven-archetype-quickstart/src/test/resources/projects/it-java-8/reference/src/test/java/it/pkg/AppTest.java
@@ -1,4 +1,4 @@
-package $package;
+package it.pkg;
 
 import static org.junit.Assert.assertTrue;
 
@@ -7,14 +7,14 @@ import org.junit.Test;
 /**
  * Unit test for simple App.
  */
-public class AppTest 
-{
+public class AppTest {
+
     /**
      * Rigorous Test :-)
      */
     @Test
-    public void shouldAnswerWithTrue()
-    {
-        assertTrue( true );
+    public void shouldAnswerWithTrue() {
+        assertTrue(true);
     }
 }
+