This simple module demos how to use Conventional Commits, Git Hooks to enforce Conventional Commits and Semantic Versioning in a Java project built with Gradle.
This is the companion project to the article Supercharge your Java Projects with Conventional Commits, Semantic Versioning and Semantic Releases.
Also, if you want to see what the code looks like after we've added the changelog etc, check the release
branch.
Make sure you have setup your local Git Hooks:
git config core.hooksPath .githooks
This will make sure your commit messages follow the Conventional Commits Specification.
Here's some handly commands:
Command | Usage |
---|---|
./mvnw -B verify |
Run the tests. |
./mvnw -B package |
Run the builds. |
This project uses standard-release
to update the version in the pom.xml
file from the changes in the history and to create the CHANGELOG.md
file.
To setup semantic versioning and create the baseline changelog, run:
npx dwmkerr/standard-version --first-release --packageFiles pom.xml --bumpFiles pom.xml
Now any time you want to cut a new release, run:
npx dwmkerr/standard-version --packageFiles pom.xml --bumpFiles pom.xml
This will:
CHANGELOG.md
Finally, just push the tag to trigger a deployment of the new version:
git push --follow-tags