如何阻止Maven Release生成标签?-DremoteTagging=false配置无效求助
解决Maven Release插件仍创建SVN标签且标签结构异常的问题
首先得澄清一个常见误解:-DremoteTagging=false这个参数的作用不是禁止创建标签,而是控制是否将创建好的标签推送到远程仓库。如果你想要完全跳过标签创建的步骤,应该使用-DskipTag=true这个参数来执行release:prepare命令:
mvn -DskipTag=true release:prepare
接下来说说你遇到的标签目录里包含旧标签的问题——这大概率是你的项目SCM配置出了问题。正常情况下,SVN的项目结构是projectA/trunk、projectA/tags、projectA/branches三者平级,而你的Maven SCM配置应该指向trunk目录,而不是项目根目录。
举个例子:
- 错误的SCM配置(指向项目根):
<scm> <connection>scm:svn:http://your-svn-url/projectA</connection> <developerConnection>scm:svn:http://your-svn-url/projectA</developerConnection> </scm> - 正确的SCM配置(指向trunk):
<scm> <connection>scm:svn:http://your-svn-url/projectA/trunk</connection> <developerConnection>scm:svn:http://your-svn-url/projectA/trunk</developerConnection> </scm>
如果配置成指向项目根,Maven Release插件在创建标签时会把根目录下的所有内容(包括已有的tags文件夹)都复制到新标签里,就会出现你看到的projectA-version1.2/tags/...这种嵌套结构。
另外,如果你确实只需要本地创建标签但不推送到远程,那确保你的maven-release-plugin版本是较新的(比如3.0.0及以上),旧版本的插件可能对remoteTagging=false参数的支持有问题。可以在pom.xml里指定插件版本:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <version>3.1.0</version> </plugin> </plugins> </build>
内容的提问来源于stack exchange,提问作者cece2048
相关产品推荐
相关产品推荐

