JReleaser can create and tag a release, upload all files and generate the changelog based on the new commits since the previous tag. If a matching milestone is found then it’ll be closed as well.

Only a single release service can be configured at a time.

You can choose from the following release services:

All releasers support automatic Changelog generation.