这是 mvn release:prepare 的问题吗
Posted
技术标签:
【中文标题】这是 mvn release:prepare 的问题吗【英文标题】:Is this an issue with mvn release:prepare 【发布时间】:2013-10-21 22:37:43 【问题描述】:我已将以下 scm 标签添加到我的主 pom:
<scm>
<developerConnection>
scm:svn:http://<server>/svn/<svnpath>/$project.artifactId/trunk
</developerConnection>
</scm>
我认为这很整洁。挂在master上的项目都采用路径策略。
当我来做一个发布:准备虽然在一个子项目上它失败了。
子 POM 最终会添加一个 scm 标签,格式如下:
<scm>
<developerConnection>
scm:svn:http://<server>/svn/<svnpath>/<artifact>/tags/v1.0.0
</developerConnection>
</scm>
随后的 svn 命令行尝试从标记中标记并失败:
[INFO] Executing: cmd.exe /X /C "svn --non-interactive copy --file C:\DOCUME~1\<me>\LOCALS~1\Temp\maven-scm-1302559010.commit http://<server>/svn/<svnpath>/<artifact>/tags/v1.0.0 http://<server>/svn/<svnpath>/<artifact>/tags/v1.0.0"
第一季度。这是 maven 版本的错误吗? Q2。如果不是bug,是不是不能像我之前那样在master中定义scm标签?
在子进程中硬编码 scm 标签实际上可以修复它,但由于我们有很多子项目,如果可能的话,我更愿意在主 pom 中定义它。
【问题讨论】:
【参考方案1】:首先它不是一个错误。目的是每个项目都有自己的 SCM 区域,其中包含正确的信息。除此之外,在发布插件周期中,信息被替换为:
<scm>
<developerConnection>scm:svn:http://<server>/project/trunk</developerConnection>
</scm>
如下:
<scm>
<developerConnection>scm:svn:http://<server>/project/tags/xyz-1.0.0</developerConnection>
</scm>
此外,您必须像这样将信息放入您的父母(主 pom)中:
<scm>
<developerConnection>
scm:svn:http://<server>/svn/<svnpath>/$project.artifactId/trunk
</developerConnection>
</scm>
被你的 master-pom 释放成这样的东西:
<scm>
<developerConnection>
scm:svn:http://<server>/svn/<svnpath>/master/tags/1.0.0
</developerConnection>
</scm>
这意味着每个子模块都会使用上述定义错误。所以你必须在每个项目中分别设置scm区域。
【讨论】:
以上是关于这是 mvn release:prepare 的问题吗的主要内容,如果未能解决你的问题,请参考以下文章
运行 mvn release:prepare 的 svn commit 问题
使用 mvn release:prepare,是不是可以指示 Maven 在提交命令的子模块 pom 位置中使用正斜杠?
在 release:prepare 和 release:perform 上激活配置文件
Maven 发布插件:release:prepare-with-pom vs -DgenerateReleasePoms
使用eclipse执行maven-release-plugin插件发布jar异常问题(.project)(Cannot prepare the release because you have loc