Maven 发布插件。无法标记分支
Posted
技术标签:
【中文标题】Maven 发布插件。无法标记分支【英文标题】:Maven release plugin. Can't tag the branch 【发布时间】:2013-10-14 14:28:46 【问题描述】:我正在使用 maven 发布插件来在 SVN 中标记我的项目。我以以下 Maven 目标运行 Jenkins 工作:
-Pmake-tag release:clean release:prepare -sbuild/deploy-settings.xml -Dresume=false
我的 pom.xml
<profile>
<id>make-tag</id>
<modules>
<module>../common-core</module>
<module>../htdocs</module>
<module>../deployer</module>
<module>../configuration</module>
</modules>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.4</version>
<configuration>
<preparationGoals>validate</preparationGoals>
<!-- <tagBase>svn:http://172.16.71.2:8080/repos/DMC/Copyright2/tags/</tagBase> -->
<useEditMode>true</useEditMode>
<autoVersionSubmodules>true</autoVersionSubmodules>
<updateWorkingCopyVersions>false</updateWorkingCopyVersions>
<tagNameFormat>rel-$env.REL_TAG</tagNameFormat>
<username>$env.SCM_USER</username>
<password>$env.SCM_PASSWD</password>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<build>
...
<scm>
<developerConnection>scm:svn:http://<svn_ip>:8080/repos/DMC/Copyright2</developerConnection>
<connection>scm:svn:http://<svn_ip>:8080/repos/DMC/Copyright2</connection>
<url>scm:svn:http://<svn_ip>:8080/repos/DMC/Copyright2</url>
</scm>
</build>
当我运行 jenkins 作业时出现错误
[INFO] Executing: cmd.exe /X /C "svn --username jenkins --password ***** --no-auth-cache --non-interactive copy --file C:\Windows\TEMP\maven-scm-756812364.commit --revision 51859 http://<svn_ip>:8080/repos/DMC scm:svn:http://<svn_ip>:8080/repos/DMC/MyProject/tags/rel-99346"
[INFO] Working directory: C:\Program Files (x86)\Jenkins\jobs\MyJob\workspace
[JENKINS] Archiving disabled
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Unable to tag SCM
Provider message:
The svn tag command failed.
Command output:
svn: E020024: Error resolving case of 'scm:svn:http:\\<svn_ip>:8080\repos\DMC\MyProject\tags\rel-99346'
尽管日志输出中的所有斜线都是 \ 在 pom.xml url 中设置正确。 很乐意得到帮助。
【问题讨论】:
你能手动运行它吗(在 Jenkins 之外)? 是的。我得到了同样的错误 好的,所以这不是 Jenkins 错误。这是一个 svn 和/或 maven 错误。 .... 或者您的服务器 URL 错误。 网址没问题。我仔细检查了它 您是否使用与提交后挂钩处理的相同工作副本? 【参考方案1】:命令行以以下内容结尾:scm:svn:http://<svn_ip>:8080/repos/DMC/MyProject/tags/rel-99346
。错了:svn.exe 不理解 scm: 前缀,这让 Maven 了解这是什么类型的 String。我看不出这个值来自哪里,也许你可以自己解释一下。
顺便说一句,<scm><url>
没有 scm: 前缀,它指向一个 webURL
【讨论】:
以上是关于Maven 发布插件。无法标记分支的主要内容,如果未能解决你的问题,请参考以下文章
Maven 发布插件。分支发布失败(+ 缺少分支名称的第一个字母)
maven-release-plugin,是不是可以不使用分支标签标记 pom.xml