Maven 发布:使用用户名和密码(svn)准备标记失败
Posted
技术标签:
【中文标题】Maven 发布:使用用户名和密码(svn)准备标记失败【英文标题】:Maven release:prepare tagging fails using username and password (svn) 【发布时间】:2012-11-23 09:15:43 【问题描述】:我已经按照在线帮助尝试了一个正常的标准使用 maven 发布插件。但是当我执行 mvn release:prepare 时,出现以下错误(silverfish 是我的项目名称):
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.0:prepare (default-cli) on project silverfish: Unable to tag SCM
[ERROR] Provider message:
[ERROR] The svn tag command failed.
[ERROR] Command output:
[ERROR] svn: E200007: Source and destination URLs appear not to point to the same repository.
[ERROR] -> [Help 1]
这是我的 pom.xml 中的 scm 部分:
<scm>
<connection>scm:svn:http://svnuser:passwd@some.address/scm/svn/silverfish</connection>
<url>http://viewurl</url>
</scm>
我认为这与“用户/密码”部分有关,因为 maven 进程的输出给出:
[INFO] Checking in modified POMs...
[INFO] Executing: /bin/sh -c cd /home/dittrich/NetBeansProjects/silverfish && svn --username svnuser --password '*****' --non-interactive commit --file /tmp/maven-scm-1445257989.commit --targets /tmp/maven-scm-7382722062367813549-targets
[INFO] Working directory: /home/dittrich/NetBeansProjects/silverfish
[INFO] Tagging release with the label silverfish-1.9...
[INFO] Executing: /bin/sh -c cd /home/dittrich/NetBeansProjects/silverfish && svn --username svnuser --password '*****' --non-interactive copy --file /tmp/maven-scm-723027784.commit --revision 106 http://some.address/scm/svn/silverfish 'http://svnuser:passwd@some.address/scm/svn/silverfish/tags/silverfish-1.9'
[INFO] Working directory: /home/dittrich/NetBeansProjects/silverfish
注意:签入部分没有问题,所以基本的svn配置似乎没问题。
在我看来,问题在于 maven 为复制命令提供了一个 url,没有用户名密码(使用 --username 和 --password 开关)和一个(使用 user:passwd@sever 语法)。然后 subversion 认为这些 url 不一样。
mvn copy http://some.address/scm/svn/silverfish 'http://svnuser:passwd@some.address/scm/svn/silverfish/tags/silverfish-1.9'
我不知道这是否是一个颠覆问题,因为颠覆应该明白这些网址仍然是相同的。还是 Maven 问题,因为 Maven 应该使用相同的 url 语法?
顺便说一句,我使用的是 svn,版本 1.7.7 (r1393599),我的 svn 服务器说它是“由 SVN/1.7.5 SVNKit/1.7.5-2 (http://svnkit.com/) 提供支持t20120724_0758" 阿帕奇 Maven 3.0.4 Java 版本:1.6.0_30,供应商:Sun Microsystems Inc.
【问题讨论】:
【参考方案1】:从 SCM 连接 URL 中删除用户名和密码:
<scm>
<connection>scm:svn:http://some.address/scm/svn/silverfish</connection>
<url>http://viewurl</url>
</scm>
并将它们添加到发布插件中:
<plugin>
<artifactId>maven-release-plugin</artifactId>
...
<configuration>
<username>$svn.username</username>
<password>$svn.password</password>
</configuration>
</plugin>
【讨论】:
以上是关于Maven 发布:使用用户名和密码(svn)准备标记失败的主要内容,如果未能解决你的问题,请参考以下文章