2

我正在研究 Maven 和 Subversion。

我创建了一个 Maven 项目。现在我想将它指向我的存储库(由 TortoiseSVN 创建)。我在一篇关于 Maven 和 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

4 回答 4

2

正如其他人所提到的,您的 URL 错误。你有ssh+svn://file:///. 它应该是svn://, ssh+svn://, http://, https://, 或file:///

但是,我注意到您的存储库似乎位于共享驱动器(驱动器 E:)上。如果不止一个人在使用此 Subversion 存储库,则不应使用该file://协议。事实上,如果我不需要,我从不使用它。使用 . 启动 SVN 服务器很容易svnserve

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

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

如果 Drive E: 是共享驱动器,请不要使用file:///. 相反,请转到此驱动器所在的 Windows 机器,然后运行svnserve​​或VisualSVN Server。您可以尝试自己安装 Apache httpd,但在 Unix 上这是一个棘手的提议,在 Windows 上非常困难。

于 2012-05-09T22:50:17.623 回答
0

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

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

::

检查此链接:http ://maven.apache.org/scm/plugins/usage.html

于 2012-05-09T22:11:34.630 回答
0

嗯,只是一个猜测,但它可能会失败,因为您使用的是本地 SVN 服务器。其实我很好奇你为什么要这么做?

尝试将您的 SVN 存储库安装在 Web 服务器上。

于 2011-03-11T06:52:56.673 回答
0

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

scm:svn:file://[hostname]/path_to_repository
于 2011-03-11T09:01:29.650 回答