custom-maven-archetypes

Maven Archetypes to conveniently bootstrap new Java projects

MIT License

Stars
41

Bootstrap New Maven Projects With Ease

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/

Package Rankings
Top 31.49% on Repo1.maven.org
Badges
Extracted from project README
Jakarta EE Archetype Maven Central JSF Archetype Maven Central Java EE Archetype Maven Central Testing Toolkit Archetype Maven Central Build Maven Archetypes
Related Projects