2012-02-01 87 views
0

我是否應該提交整個代碼庫以及POM,並讓用戶一次簽出多個項目,其中一個包含多個模塊?我應該如何在SCM中配置我的MAVEN項目?

我是否應該只提交POM,並在每個POM中配置SCM信息?

當您配置maven SCM插件時,提交/簽出如何工作?你是否通過顛覆存儲了POM,將它們檢出,然後實現POM,Maven會將相應文件的其餘部分下載到該項目中?如果你需要添加新文件,但是你通過maven使用SCM呢?

我對使用svn(標準方式)存儲文件和基於每個存儲SCM信息之間的差異感到非常困惑。似乎沒有關於如何使用Maven和加載SCM信息的文檔。

最好是直接在POM中存儲SCM信息,還是像我之前說的那樣,我應該只是將整個項目添加到SVN中,包括它們各自的POM?

還是將SCM信息直接嵌入到maven中,讓maven實現所述項目更好? Maven SCM插件是否可以很好地與subclipse配合使用?例如 - 在你從maven POM中「物化」一個項目之後,它是否從SVN導入項目文件,然後在eclipse中將它們顯示爲版本控制之下?如果我將SCM信息嵌入到Maven POM中,那麼我會只爲我的pom文件創建一個單獨的SVN回購?或者我只是將所有的POM文件直接放在我的工程回購的主幹中?

希望有人能幫我澄清這一點。我很困惑。謝謝!

回答

2

始終在SCM中提交所有源代碼。否則,你沒有你的源代碼的歷史。

還在SCM中提交你的pom,否則你沒有應該如何構建它的歷史。這樣的歷史對於構建軟件的舊分支至關重要,並且由於構建和源代碼緊密結合,因此將pom.xml提交到源代碼所在的存儲庫是一個不錯的主意。

爲了便於其他maven工具,您可能想在pom.xml中提到您的SCM。這是可選的,但我強烈建議你這樣做。這允許CI系統驗證他們的源代碼副本是最新的,並在必要時爲他們提供檢查新副本所需的配置。

我不知道任何工具或插件,實際上檢查代碼爲您。如果你沒有檢入你的源代碼,那麼所有其他的工具都會檢出一個簡單的pom.xml(因爲這就是SCM中的全部),SCM引用將不能告訴任何人源代碼代碼是(因爲它不在SCM中)。

+0

我認爲它被稱爲Bootstrapping。但我不確定 – 2012-02-02 14:43:37

+0

當我將項目存儲在SVN中時,我沒有包含eclipse .project設置和其他自動生成的其他東西。我是否也應該提交eclipse項目?當你通過svn(import> import from svn)檢出我的maven項目並選擇「check out as workspace in the workspace」時,它不會將其識別爲maven/java項目。它只是顯示了POM和文件,但沒有任何Maven支持。但是,如果我將項目簽出爲Maven項目,那麼它可以工作,但它不會將文件顯示爲受SVN控制。有點奇怪。我錯過了什麼? – 2012-02-02 14:48:43

+0

@SamLevin,通常我不檢查日食。項目設置,因爲任何對項目的修改(包括設置運行時配置參數)往往會在執行svn更新時被擦除,或者在執行svn commit時傳播不合需要。但是,分發文件非常有用,可以方便初始設置(並避免手冊詳細說明要設置什麼項目以及在哪裏設置)。因此,我製作了一個文件夾,將配置文件放置在正常位置之外,並在其中放置一個「設置」腳本,將其複製到適當的位置。 – 2012-02-02 17:15:16

相關問題