我正在研究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
可能会发生什么?
答案 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计算机,然后运行svnserve
或VisualSVN Server
。您可以尝试自己安装Apache httpd,但这在Unix上是一个棘手的主张,在Windows上非常困难。
答案 1 :(得分:0)
尝试在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
::