我有一个基于maven的java项目,我最近在Bitbucket git服务器上使用mvn:release perform
命令发布了它并且它成功了。但是,在发布完成后,我的pom.xml自动修改了标签中的代码片段<tag>HEAD</tag>
,这让我感到很惊讶,因为在我过去的项目中进行颠覆版本时,我从未见过这种情况。
<scm>
<connection>scm:git:https://nitalchandel@bitbucket.org/nitalchandel/jobmon.git</connection>
<url>https://nitalchandel@bitbucket.org/nitalchandel/jobmon</url>
<developerConnection>scm:git:https://nitalchandel@bitbucket.org/nitalchandel/jobmon.git</developerConnection>
<tag>HEAD</tag>
</scm>
所以我的问题是:
的pom.xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
<configuration>
<tagNameFormat>${project.name}-v@{project.version}</tagNameFormat>
</configuration>
</plugin>
答案 0 :(得分:1)
- 这是maven或git或bitbucket的新功能吗?
醇>
这是maven-release-plugin
的一项功能,因为version 2.3。调用目标release:prepare
时,<tag>
元素用于存储存储标记的SCM的URL。例如,对于SVN,当使用SCM时
svn://project/trunk
,<tag>
元素
由svn://project/tags/project-1.0
取代。使用Git,没有这样的信息(没有存储标记本身的URL),因此<tag>
元素设置为HEAD
。
- 因为我的NetBeans编辑器会发生这种情况吗? (我正在从Windows命令提示符下发布)
醇>
绝对不是,这与maven-release-plugin
完全相关。
- 这可能是因为maven-release-plugin我的pom,我在下面提到过吗?
醇>
不,<tagNameFormat>
告诉maven-release-plugin
创建标记时要选择的名称。默认情况下,使用的名称为${project.artifactId}-${project.version}
,但您可以将其覆盖为您想要的名称。
- 这是好事还是坏事?
醇>
这是一个信息元素。目的是表明此POM是发布的结果。 AFAIK,它将始终由maven-release-plugin
添加,并且没有理由将其删除。