Skip to content

rieckpil/custom-maven-archetypes

Repository files navigation

Bootstrap New Maven Projects With Ease

Jakarta EE Archetype Maven Central JSF Archetype Maven Central Java EE Archetype Maven Central Testing Toolkit Archetype Maven Central

Build Maven Archetypes

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:

Archetype Usage

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

Java Project with Basic Testing Capabilities

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.

Jakarta EE 8 with Microprofile 3.3 and Java 11

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 with bean-discovery-mode="all"
  • persistence.xml configured for JTA persistence unit
  • microprofile-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

Java EE 8 with Microprofile 3.3 and Java 11

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 with bean-discovery-mode="all"
  • persistence.xml configured for JTA persistence unit
  • microprofile-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

Java EE 8 with Microprofile 3.3 and Java 11 for JSF development

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 with bootstrap as selected PrimeFaces theme
  • beans.xml with bean-discovery-mode="all"
  • persistence.xml configured for JTA persistence unit
  • microprofile-config.properties for configuration
  • Simple index.xhtml with backing bean SampleBean
  • 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/