@stelfrich is right that Development Lifecycle is the current documentation for how to cut a plugin release… except for one problem: TrakEM2 is the sole exception to the processes described on that page. The reason is that @axtimwalde felt strongly about keeping the TrakEM2 components in a single Git repository as a multi-module Maven project. As such, cutting a release of TrakEM2 is more complicated, and the process is not documented anywhere.
When cutting a release of TrakEM2, one must first decide which component(s) of TrakEM2 are going to be released. Then bump those versions in root and child POMs, and downgrade the not-to-be-released components from SNAPSHOTs to their most recent release versions. After the release is built, everything must be put back to SNAPSHOTs. The Git history of TrakEM2 shows examples of this being done. It is very error-prone, so be careful.