2016-03-07 74 views
1

我無法通過Maven訪問svn修訂版號。我從SCM使用頁面得到的唯一真正的幫助是:Maven scm和svn

<scm> 
    <connection>scm:svn:http://somerepository.com/svn_repo/trunk</connection> 
    <developerConnection>scm:svn:https://somerepository.com/svn_repo/trunk</developerConnection> 
    <tag>HEAD</tag> 
    <url>http://somerepository.com/view.cvs</url> 
</scm> 

這對我毫無意義,因爲我想不出有什麼聯繫,developerConnection和網址的意思。我只需將url插入我的所有3個元素的回購站中。我也不知道Maven爲什麼不要求我輸入存儲庫的用戶名和密碼。

我很新的Maven和可能會問一個很基本的問題,但希望得到一個完整的解釋,我是怎麼來訪問svn的。

+0

這是回答您的問題嗎? http://stackoverflow.com/a/35676704/1743880 – Tunaki

+0

嗨@Tunaki很高興見到你在這裏回答我的問題!恐怕不會回答我的問題:(但是,我真的只需要連接到我的存儲庫,但不知道任何元素的含義? – Max

+0

文檔http://maven.apache.org/pom.html #SCM非常清楚,'connection'和'developerConnection'指向SVN倉庫URL,'tag'是可選的,你不需要它,'url'是一個可公共瀏覽的倉庫的URL。 – Tunaki

回答

1

首先,我將開始通過明確的Maven的使用,這似乎引起你的情況的困惑:

的Apache Maven的是一個軟件項目管理工具......可以管理項目建立。

的Apache Maven的無關,與你的修訂推到你的源代碼管理系統(SVN你的情況)。

通常情況下,你會通過IDE來推你的變化(的EclipseIntelliJ IDEA的和相似)或通過命令行來你SVN庫,你將不以任何方式是通過推動這些變化Maven在這種情況下,你將打破它的使用目的。

現在問題來了,爲什麼你可能需要再與供應鏈管理相關的屬性? 答案很簡單,應該是相關的,因爲的Maven是一個項目構建工具,它必須處理項目發佈週期是項目建設週期的最後一塊...它不會是能夠做到這一點的沒有更新您的遠程項目信息,因爲您正在使用SCM遠程存儲庫。

現在回到那些SCM相關的屬性,以及它們意味着什麼:

  • 連接:一個URL連接端點到您的SCM庫並且將只用於訪問。
  • developerConnection:一個URL連接端點到您的SCM庫以及將用於訪問。 (這就是開發人員角色打算做的事情,將更改推送到存儲庫)。
  • 標籤:它指定在該項目的生活和我見過的唯一HEAD在那裏使用,並承擔將是默認的標籤。
  • 網址:它指定一個可瀏覽庫,比如一個通過viewvc(在大多數情況下,你可以用/viewvc取代你的連接網址下/SVN/路徑/
0

SCM小號 oftware Ç onfiguration 中號 anagement,也稱爲小號烏爾斯河Ç ODE/ç ONTROL 中號 anagement或,簡潔地,版本控制)是任何健康的項目的組成部分。如果您的Maven項目使用SCM系統(它確實,不是嗎?),那麼您可以在這裏將該信息放入POM中。

connection,developerConnection:這兩個連接元素表達瞭如何通過Maven連接到版本控制系統。其中connection要求Maven能夠讀取訪問權以便能夠找到源代碼(例如,更新),developerConnection需要連接才能寫入訪問權限。 Maven項目產生了另一個名爲Maven SCM的項目,該項目爲希望實施它的SCM創建了一個通用API。最受歡迎的是CVS和Subversion,但是,其他支持的SCM的列表越來越多。所有的SCM連接都是通過一個通用的URL結構完成的。

scm:[provider]:[provider_specific] 

其中provider是SCM系統的類型。例如,在連接到CVS倉庫可能是這樣的:

scm:svn:https://somerepository.com/svn_repo/trunk 

tag:指定該項目的生活下的標籤。 HEAD(意思是SCM根)應該是默認值。

url:可公開瀏覽的存儲庫。例如,通過ViewCVS。

Source