2011-03-11 42 views
2

我正在做Maven和Subversion的工作。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

嗯,只是一個猜測,但它可能失敗,因爲你使用本地SVN服務器。其實,我想知道你爲什麼這樣做?

嘗試在網絡服務器上安裝SVN回購。

0

爲什麼需要svn+ssh協議連接到本地存儲庫(file:///)?你可以嘗試刪除svn+ssh,看看是否有效。請參閱this

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

當我試圖遵循這種類型的語法,然後我得到這個錯誤 – anjana

2

正如其他人所說,你有一個壞的URL。您有ssh+svn://file:///。它應該是svn://,ssh+svn://,http://,https://file:///

但是,我注意到它看起來您的存儲庫在共享驅動器(驅動器E :)上。如果有多個人使用這個Subversion版本庫,則不應該使用file://協議。事實上,如果我不需要,我從不使用它。使用svnserve啓動SVN服務器很簡單。

看看VisualSVN Server。這是一個商業產品,但有一個免費版本。它將設置一個Apache httpd服務器,併爲您提供配置該服務器的方法,包括設置用戶帳戶。然後,每個人都可以使用http://訪問存儲庫。

問題是使用file:///協議意味着存儲庫必須由組中的每個人讀/寫。這意味着任何人都可以在不通過前端的情況下直接操縱存儲庫。另外,最終可能會有多個人試圖同時創建一個修訂版,這可能會讓您的整個存儲庫完全混亂。

如果驅動器E:是共享驅動器,請勿使用file:///。相反,請轉到該驅動器所在的Windows機器,然後運行svnserveVisualSVN Server。你可以嘗試自己安裝Apache httpd,但這在Unix上是一個棘手的問題,在Windows上非常困難。