2010-06-14 46 views
11

我有一個Java項目我想提交到我的SVN倉庫,使用Eclipse創建。應該在eclipse Java項目中向SVN添加什麼文件?

現在,什麼文件(除了源代碼,顯然)是必要的?在工作區的根目錄中,有一個包含許多文件和子文件夾的.settings文件夾,在項目文件夾內有兩個文件 - .classpath和.project,另一個.settings文件夾包含單個文件 - org.eclipse.jdt.core .prefs。

哪些文件應該提交給SVN,哪些可以安全排除?

回答

11

他們都是有用的,如果你想擁有整個團隊一致的設置。

.classpath.project意味着每個人只要導入它就可以啓動並運行一個項目。項目中包含的庫和源文件的任何更改將在檢入時被所有人收集。

.settings目錄包含代碼格式化選項以及編譯器認爲是警告,錯誤或確定。爲了保持一致性,我也開始檢查這些內容(只要你的團隊中的每個人都可以同意格式化的標準,我猜)。

我發現在Eclipse中通過版本控制共享事物的最大限制是在庫定義中。圖書館的定義似乎只存儲在每個用戶的基礎上,所以如果你在.classpath文件中引用「庫」,所有其他用戶必須手動定義庫的內容(或手動導入導出的庫定義文件) 。


編輯:(以下尋址@ mliebelt的評論)

,如果你想保持開發的一致性/標準化你只提交.settings文件。如果這對於項目來說不是問題,那麼不提交.settings文件就不用擔心維護。特定於個人喜歡的插件的文件可能不需要被提交(儘管我不認爲這會傷害他們,可能會被忽略?)。

我發現值得提交的兩個最常見的是org.eclipse.jdt.core.prefsorg.eclipse.jdt.ui.prefs,它們是任何(Java)Eclipse項目的核心。

+1

提及.settings。對於我們的項目,我發現這個文件是無價的,因爲我們避免了關於編碼準則和格式規則的大量文檔。相反,我們花費了時間來同意日食給我們提供的所有選項,並將它們檢入到項目中。 – 2010-06-14 07:09:53

+0

我是否有權假定生成文件夾沒有必要提交? – 2013-10-07 19:42:56

+0

如果「build」文件夾包含來自編譯器或其他自動生成文件的輸出,通常不會提交它。如果它有源文件(如構建腳本),那麼你可能會。 – Ash 2013-10-08 04:51:47

2

您可以排除.settings文件夾,但.project文件對於希望重建相同的Eclipse項目的其他開發人員非常有用。如果您檢查文件時,它應該只有相對引用(如果沒有,你應該修改它是這樣。)

+0

當然,您指的是項目目錄中的.settings文件夾?那麼.classpath文件呢? – 2010-06-14 01:41:00

+0

正如其他答案所說,是的,'.classpath'也是需要的,對不起。 – dplass 2010-06-14 13:34:33

+0

'.settings'文件夾由所有項目共享,每個項目沒有'.settings' ... – mliebelt 2013-10-08 05:26:45

2

與其他答案相比,我已經在中更好地體驗過與我合作的大型開源項目中的.project文件。

你可以不同意我,但有一個問題,共享的.project文件:它們包含在項目中使用的項目性質引用。項目的本質再次依賴於本地開發人員機器上安裝的插件。

示例:如果在Java項目上使用Findbugs,則會將新特性添加到Java項目中。檢查該文件,在另一個系統(沒有安裝FindBugs)上修改它,然後再次在我的系統上使用它,導致Findbugs引用丟失(因此所有Findbugs檢查都將被靜默刪除)。

但是,如果您可以讓所有開發人員同意使用相同的工具,那麼您可以輕鬆解決此問題。

+0

好點。但是,只有在開放源代碼項目中,您不要求所有開發人員使用相同的插件。在那裏你通常甚至不能控制每個人都必須使用哪個IDE,所以你只需檢查sources_only_。 – mliebelt 2013-10-08 05:28:25

相關問題