Maven和颠覆

时间:2011-03-11 05:40:31

标签: svn maven maven-release-plugin

我正在研究Maven和Subversion。

我创建了一个maven项目。现在我想将它指向我的存储库(由TortoiseSVN创建)。我在tutorial on Maven and Subversion中读到我应该更改pom.xml文件。按照这些说明,我添加了scm标记,如下所示:

<scm>
<connection>scm:svn:svn+ssh://file:///E:/my-app-repos/trunk</connection>
<developerConnection>scm:svn:svn+ssh://file:///E:/my-app-repos/trunk</developerConnection>
<url>scm:svn:svn+ssh://file:///E:/my-app-repos/trunk</url>
</scm>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<tagBase>svn+ssh://file:///E:/my-app-reposs</tagBase>
</configuration>
</plugin>
</plugins>
</build>

但是,当我尝试mvn release:prepare时,我收到一个错误:

fail to execute goal org.apache.maven.plugins

可能会发生什么?

4 个答案:

答案 0 :(得分:2)

正如其他人所说,你的网址不好。你有ssh+svn://file:///。它应该是svn://ssh+svn://http://https://file:///

但是,我注意到您的存储库似乎位于共享驱动器(驱动器E :)上。如果有多个人正在使用此Subversion存储库,则不应使用file://协议。事实上,如果我不需要,我从不使用它。使用svnserve启动SVN服务器非常简单。

看看VisualSVN Server。这是一个商业产品,但有一个免费版本。它将设置一个Apache httpd服务器,并为您提供配置该服务器的方法,包括设置用户帐户。然后,每个人都可以使用http://访问存储库。

问题是使用file:///协议意味着存储库必须由组中的每个人读/写。这意味着任何人都可以直接操作存储库而无需通过前端。此外,您最终可能会有多个人同时尝试创建修订版,这可能会完全破坏您的整个存储库。

如果Drive E:是共享驱动器,请不要使用file:///。而是转到此驱动器所在的Windows计算机,然后运行svnserveVisualSVN Server。您可以尝试自己安装Apache httpd,但这在Unix上是一个棘手的主张,在Windows上非常困难。

答案 1 :(得分:0)

嗯,只是一个猜测但它可能因为您使用本地SVN服务器而失败。实际上,我想知道你为什么那样做?

尝试在Web服务器上安装SVN repo。

答案 2 :(得分:0)

为什么需要svn+ssh协议才能连接到本地存储库(file:///)?您可以尝试删除svn+ssh并查看是否有效。请参阅this

scm:svn:file://[hostname]/path_to_repository

答案 3 :(得分:0)

你应该删除svn + ssh并且只保留文件,这是要使用的协议,因为你访问本地存储库“文件”协议就足够了。

scm:svn:file:///E:/my-app-repos/trunk

::

点击此链接:http://maven.apache.org/scm/plugins/usage.html