Code Monkey home page Code Monkey logo

custom-maven-archetypes's Introduction

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/

custom-maven-archetypes's People

Contributors

rieckpil avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.