There are several different implementations that allow version numbers to be automatically incremented. At its simplest,
maven-release-plugin allows the micro version to be incremented on each release, with the expectation that the developer team will take care of incrementing minor and major version numbers as appropriate.
For automated semantic versioning, there has to be a way of performing a comparison against the prior release in order to know whether the public API has changed in any significant way. This generally takes one of two forms: either the version being built has to be compared against a "last known built" JAR or the latest version needs to be acquired from a repository automatically.
These versions ...