【发布时间】:2016-08-24 21:49:09
【问题描述】:
我正在尝试使用 Maven 发布插件创建一个版本,似乎 tagBase 设置被完全忽略了。
这是我的 pom 的样子:
...
<scm>
<developerConnection>scm:svn:http://svn.server/svn/repos/.../project/trunk</developerConnection>
</scm>
...
<build>
...
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
<configuration>
<tagBase>http://svn.server/svn/repos/.../project/branches</tagBase>
</configuration>
</plugin>
</plugins>
</build>
...
这是我正在运行的 mvn release 命令:
mvn release:prepare
我最初使用-DdryRun=true 选项进行了尝试,并注意到试运行生成的 pom.xml.tag 文件引用了.../project/tags/ 目录而不是@987654326在tagBase 中指定的@ 目录。我在没有试运行的情况下尝试了这个,结果是一样的。该版本是在我的 SVN 存储库的 tags 目录中创建的,而不是根据 pom 中的 tagBase 设置在 branches 目录中创建的。
为什么tagBase 会被忽略?如何获取 maven 发布插件以在 .../project/branches/ 而不是 .../project/tags/ 下创建发布?
编辑 - 添加一些附加信息:
我正在使用 2.5.3 版的 maven-release-plugin 和 Maven 3.3.9 版。
运行mvn release:prepare -DdryRun=true 命令后,生成的 release.properties 和 pom.xml.tag 文件如下所示:
release.properties:
#release configuration
#Thu Aug 25 09:07:24 EDT 2016
scm.tagNameFormat=@{project.artifactId}-@{project.version}
scm.tag=project-1.0.0
project.scm.group.id\:project.tag=HEAD
pushChanges=true
scm.url=scm\:svn\:http\://svn.server/svn/repos/.../project/trunk
preparationGoals=clean verify
remoteTagging=true
projectVersionPolicyId=default
scm.commentPrefix=[maven-release-plugin]
scm.tagBase=http\://svn.server/svn/repos/.../project/branches
project.scm.group.id\:project.developerConnection=scm\:svn\:http\://svn.server/svn/repos/.../project/trunk
project.dev.group.id\:project=1.0.1-SNAPSHOT
project.rel.group.id\:project=1.0.0
exec.snapshotReleasePluginAllowed=false
exec.additionalArguments=-P my-active-profile
completedPhase=end-release
pom.xml.tag:
...
<scm>
<developerConnection>scm:svn:http://svn.server/svn/repos/.../project/tags/project-1.0.0</developerConnection>
</scm>
...
在生成的release.properties文件中scm.tagBase属性看起来是正确的,但是pom.xml.tag中的scm信息仍然引用了tags 目录而不是 branches。
【问题讨论】:
-
您之前是否清理过版本?可能是您正在阅读旧文件。运行
mvn release:clean release:prepare -DdryRun=true,这将确保重新创建release.properties和pom.xml.tag。 -
感谢您的建议。是的,到目前为止,我已经尝试了很多东西。在我尝试过的每个
mvn release:prepare命令之间,我一直在运行mvn release:clean,但它似乎仍然忽略了tagBase设置。
标签: maven maven-release-plugin