A collection of Maven archetypes for creating multi-module Java applications with Web, Service, and Persistence layers. This repository contains:
- Spring Template Archetype: For creating Spring-based applications
- Quarkus Template Archetype: For creating Quarkus-based applications
The generated project will have the following structure:
your-project/
├── your-project-web/
│ ├── src/main/java/
│ └── src/main/resources/
├── your-project-service/
│ ├── src/main/java/
│ └── src/main/resources/
├── your-project-persistence/
│ ├── src/main/java/
│ └── src/main/resources/
├── your-project-app/
│ ├── src/main/java/
│ └── src/main/resources/
├── pom.xml
└── README.md
To install the archetype locally:
mvn clean installTo generate a project using the Spring template archetype:
mvn archetype:generate \
-DarchetypeGroupId=be.simpletom.app \
-DarchetypeArtifactId=spring-template-archetype \
-DarchetypeVersion=1.0-SNAPSHOT \
-DgroupId=com.example \
-DartifactId=my-spring-project \
-Dversion=0.1-SNAPSHOT \
-DinteractiveMode=falseTo generate a project using the Quarkus template archetype:
mvn archetype:generate \
-DarchetypeGroupId=be.simpletom.app \
-DarchetypeArtifactId=quarkus-template-archetype \
-DarchetypeVersion=1.0-SNAPSHOT \
-DgroupId=com.example \
-DartifactId=my-quarkus-project \
-Dversion=0.1-SNAPSHOT \
-DinteractiveMode=falseReplace com.example, my-spring-project/my-quarkus-project, and 0.1-SNAPSHOT with your desired values.
- Multi-module Maven project structure
- Separation of concerns:
- App layer (application entry point)
- Web layer (controllers, DTOs)
- Service layer (business logic)
- Persistence layer (repositories, entities)
- Minimal dependencies for maximum flexibility
- Comprehensive .gitignore file
- Detailed README.md with instructions
- Ready for Spring Boot integration
- Structured for Spring's dependency injection
- Ready for Quarkus integration
- Structured for Quarkus's fast startup and low memory footprint
After generating the project, you can:
- Add your own controllers, services, and repositories
- Configure your preferred database in the persistence module
- Add additional dependencies as needed
- Customize the application configuration
This project is licensed under the MIT License - see the LICENSE file for details.