Maven发布:使用用户名和密码(svn)准备标记失败

时间:2012-11-23 09:15:44

标签: svn maven maven-3 maven-release-plugin

我已经尝试过在线帮助后正常使用maven发布插件。但是当我做一个mvn版本时:准备我得到以下错误(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>

我认为它与“user / passwd”部分有关,因为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在没有用户名密码(使用--username和--password开关)的情况下为复制命令提供了一个URL,并且使用了一个(使用user:passwd @sever语法)。然后颠覆认为这些网址不一样。

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" Apache Maven 3.0.4 Java版本:1.6.0_30,供应商:Sun Microsystems Inc.

1 个答案:

答案 0 :(得分:2)

从SCM连接网址中删除用户名和密码:

<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>