问题的主要思想是:是指定maven版本在执行发布时应跳过标记的方法吗?
我有以下背景:我们有一个TFS(Team Fundation Server)作为我们软件版本的系统。我们还使用与TFS“对话”的svn桥,开发人员和CI工具使用它。当执行mvn release:clean release:prepare release:perform
maven抱怨它无法找到或创建标记时(以某种方式将svn的tag命令转换为tfs崩溃中的类似命令)。任何建议都表示赞赏。
错误如下所示:
28-May-2013 15:51:04 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.4.1:branch (default-cli) on project spring-hibernate-mysql: The scm url is invalid.
28-May-2013 15:51:04 [ERROR] - scm:svn:https://${TFS_SERVER}:${PORT}/${PATH_TO_APP}/tags/dbDiagnostic-1.0.0-RELEASE url isn't a valid svn URL.
28-May-2013 15:51:04 [ERROR] -> [Help 1]
我提到网址没问题,因为在此计划中,在CI计划中的步骤是具有相同网址的“checkout sources
”步骤。
答案 0 :(得分:1)
maven发布插件取决于svn标记,因为它在发布过程中检出标记的版本。所以答案是:不,没有标签就无法发布。
上面的svn网址无效,您应该考虑通过解析变量替换来修复它。
答案 1 :(得分:1)
问题:
您可以通过将 remoteTagging 属性设置为 false 来禁用远程标记,如下所述:http://maven.apache.org/maven-release/maven-release-plugin/prepare-mojo.html#remoteTagging
注意 仅与SVN一起使用。
然而,此错误的原因很可能是因为maven 在上一步骤中未能创建标记,原因在于身份验证失败或URL配置不正确(请参阅“标记库”属性&等)。