A common template repository that I use for the base of Maven projects.
Feel free to use it if you want. This project uses the Unlicense, so you can do what you want with it and change the license for derived projects.
- Includes AssertJ, JUnit, SLF4J, and Mockito by default.
- Implements Checkstyle (using Google code style by default; uses Checkstyle v10).
- Implements license header enforcement.
- Provides a basic build pipeline:
- Tests;
- Checkstyle and License enforcement;
- Provides initial config for Codecov;
- CodeQL Analysis in CI.
- Dependabot Security Analysis in CI.
- Provides a default
.editorconfig
and.gitignore
. - Implements Maven Wrapper.
- Uses a visual test reporter for Surefire.
- Configures JARs with default metadata, and seals any JARs created.
- Implements JaCoCo coverage reporting.
- Provides the newest JAR, Compiler, and Surefire plugins (JPMS-compatible).
- Encodes the module version into any compiled module descriptors.
- Clone the repo.
- Change the group ID in the POM.
- Change the artifact ID.
- Replace the LICENSE.txt with your appropriate project license.
- Update
.mvn/license/license-header.txt
with the desired license header. - Update the license name in the POM.
- Update the organisation and project URLs in the POM.
- Update the labels and assignees in
.github/dependabot.yaml
- Update the
distributionManagement
block in the POM. - Update the
developers
block in the POM. - Delete this README.md.
- Remove the
your-module
placeholder module.
Additionally, you may wish to:
- Change the initial version (optional).
- Change the Java Version in the POM if desired.
- If you do not need SLF4J/JUnit/AssertJ/Mockito, remove those dependencies.
- Update .editorconfig appropriately for your project.
- Update .gitconfig appropriately for your project.
- Update the
contributors
block in the POM if appropriate. - Adjust the
issueManagement
block in the POM if you are not using GitHub Issues.
- Register the project with Codecov, or delete the
codecov.yml
file.