Maven Archetypes are a project templating toolkit to scaffold new Maven projects in seconds.
This repository contains a set of custom Maven Archetypes to conveniently bootstrap your next Java project:
- Java Project with Basic Testing Capabilities
- Jakarta EE 8 with Microprofile 3.3 and Java 11
- Java EE 8 with Microprofile 3.3 and Java 11 for JSF development
- Java EE 8 with Microprofile 3.3 and Java 11
Prerequisites:
- Java 8 or 17 (for
testing-toolkit
archetype) - Maven (either as a CLI tool or using the Maven Wrapper) > 3.6.1
Bootstrap a new Maven project using an archetype on Mac and Linux:
mvn archetype:generate \
-DarchetypeGroupId=de.rieckpil.archetypes \
-DarchetypeArtifactId=<archetype name> \
-DarchetypeVersion=<latest archetype version> \
-DgroupId=<your group id> \
-DartifactId=<your artifact id> \
-DinteractiveMode=false
Bootstrap a new Maven project using an archetype on Windows (CMD or PowerShell):
mvn archetype:generate "-DarchetypeGroupId=de.rieckpil.archetypes" "-DarchetypeArtifactId=<archetype name>" "-DarchetypeVersion=<latest archetype version>" "-DgroupId=<your group id>" "-DartifactId=<your artifact id>" "-DinteractiveMode=false"
Make sure to replace all <xyz>
placeholders before running the commands on your machine.
The available archetype names are:
testing-toolkit
jakartaee8
javaee8
javaee8-jsf
You can find the latest version of each archetype as part of the badges on top of this README. The badges display the version with a preceding v
, e.g. v1.0.2
which you must remove.
Complete example for Mac or Linux:
mvn archetype:generate \
-DarchetypeGroupId=de.rieckpil.archetypes \
-DarchetypeArtifactId=testing-toolkit \
-DarchetypeVersion=1.0.2 \
-DgroupId=com.mycompany \
-DartifactId=order-service \
-DinteractiveMode=false
cd order-service
./mvnw package
Complete example for Windows:
mvn archetype:generate "-DarchetypeGroupId=de.rieckpil.archetypes" "-DarchetypeArtifactId=testing-toolkit" "-DarchetypeVersion=1.0.2" "-DgroupId=com.mycompany" "-DartifactId=order-service" "-DinteractiveMode=false"
cd order-service
mvnw package
Archetype name: testing-toolkit
With this Maven archetype you can bootstrap a simple Java 17 application with basic testing capabilities in seconds. This archetype contains the following files/dependencies:
- Java 17
- Mockito and JUnit 5 dependencies for efficient testing
- Testcontainers for integration test
- AssertJ for writing fluent assertions
- A basic JUnit Jupiter test
- Maven Wrapper
- A basic
.gitignore
Refer to the Maven Setup For Testing Java Applications blog post on how to get started with this project.
Archetype name: jakartaee8
With this Maven archetype you can bootstrap a simple Jakarta EE 8 application in seconds. This archetype contains the following files/dependencies:
- Jakarta EE 8 API dependency
- Microprofile 3.3 dependency
- Mockito and JUnit 5 dependencies for efficient testing
beans.xml
withbean-discovery-mode="all"
persistence.xml
configured for JTA persistence unitmicroprofile-config.properties
for configuration- Dockerfile for latest Open Liberty deployment
- Build and deploy script as
.sh
and.bat
Bootstrapping and deploying a new application under Linux/Mac (Docker daemon needs to run):
mvn archetype:generate -DarchetypeGroupId=de.rieckpil.archetypes -DarchetypeArtifactId=jakartaee8 -DarchetypeVersion=1.1.0 -DgroupId=de.rieckpil.blog -DartifactId=jakartaee-8-microservice -DinteractiveMode=false
cd jakartaee-8-microservice
./buildAndRun.sh
After Open Liberty successfully started visit http://localhost:9080/resources/sample
Archetype name: javaee8
With this Maven archetype you can bootstrap a simple Java EE 8 application in seconds. This archetype contains the following files/dependencies:
- Java EE 8 API dependency
- Microprofile 3.3 dependency
- Mockito and JUnit 5 dependencies for efficient testing
beans.xml
withbean-discovery-mode="all"
persistence.xml
configured for JTA persistence unitmicroprofile-config.properties
for configuration- Dockerfile for latest Open Liberty deployment
- Build and deploy script as
.sh
and.bat
Bootstrapping and deploying a new application under Linux/Mac (Docker daemon needs to run):
mvn archetype:generate -DarchetypeGroupId=de.rieckpil.archetypes -DarchetypeArtifactId=javaee8 -DarchetypeVersion=2.1.0 -DgroupId=de.rieckpil.blog -DartifactId=javaee-8-microservice -DinteractiveMode=false
cd javaee-8-microservice
./buildAndRun.sh
After Open Liberty successfully started visit http://localhost:9080/resources/sample
Archetype name: javaee8-jsf
With this Maven archetype you can bootstrap a simple Java EE 8 JSF application in seconds. This archetype contains the following files/dependencies:
- Java EE 8 API dependency
- Microprofile 3.3 dependency
- Primefaces 8.0 and all-themes dependency
- Omnifaces 3.6.1 dependency
- Mockito and JUnit 5 dependencies for efficient testing
web.xml
for JSF development withbootstrap
as selected PrimeFaces themebeans.xml
withbean-discovery-mode="all"
persistence.xml
configured for JTA persistence unitmicroprofile-config.properties
for configuration- Simple
index.xhtml
with backing beanSampleBean
- Dockerfile for latest Open Liberty deployment
- Build and deploy script as
.sh
and.bat
Bootstrapping and deploying a new application under Linux/Mac (Docker daemon needs to run):
mvn archetype:generate -DarchetypeGroupId=de.rieckpil.archetypes -DarchetypeArtifactId=javaee8-jsf -DarchetypeVersion=2.1.0 -DgroupId=de.rieckpil.blog -DartifactId=jsf-app -DinteractiveMode=false
cd jsf-app
chmod +x buildAndRun.sh
./buildAndRun.sh
After Open Liberty successfully started visit http://localhost:9080/