Maven 发布插件和 Git 标记样式

Maven Release Plugin and Git Tagging Style

Maven Release Plugin 是否在 Git 中执行轻量级或带注释的标签?(另外,如果它默认为轻量级标签,它是否支持带注释的标签?)

例如,我可以使用以下任一方式手动标记项目:

git tag v1.0.0#轻量级

或者,

git tag -a v1.0.0 # 注释

这些是非常不同类型的标签。第一个是轻量级 Git 标签,第二个是带注释的 Git 标签。

(注意: 我知道 release:prepare 目标执行带有 POM 更改的提交,这实际上 模拟了一个带注释的标签,因为它与标记到新的特定提交,但我的问题是带注释的标记是否是结果。)

背景: Mavenized Java 项目上的 Maven 3.3.9 和 Git 2.7.4。在 Google 或 SO 中不容易找到这个答案。

更新: Maven 发布插件的标签总是注释。不支持轻量级标签。请参阅下面的答案和我的评论以证实它。

虽然我没有找到关于这个问题的文档(也许它存在),但我做了一个试验 运行。使用简单的 POM 创建本地 GIT 存储库并执行 maven release:prepare。当我在结果标签上 运行 git show $MYTAG 时,git 输出包含 "Tagger" 数据,这表明它是一个带注释的标签。

https://git-scm.com/book/en/v2/Git-Basics-Tagging

https://maven.apache.org/maven-release/maven-release-plugin/prepare-mojo.html