我有一個Java項目我想提交到我的SVN倉庫,使用Eclipse創建。應該在eclipse Java項目中向SVN添加什麼文件?
現在,什麼文件(除了源代碼,顯然)是必要的?在工作區的根目錄中,有一個包含許多文件和子文件夾的.settings文件夾,在項目文件夾內有兩個文件 - .classpath和.project,另一個.settings文件夾包含單個文件 - org.eclipse.jdt.core .prefs。
哪些文件應該提交給SVN,哪些可以安全排除?
我有一個Java項目我想提交到我的SVN倉庫,使用Eclipse創建。應該在eclipse Java項目中向SVN添加什麼文件?
現在,什麼文件(除了源代碼,顯然)是必要的?在工作區的根目錄中,有一個包含許多文件和子文件夾的.settings文件夾,在項目文件夾內有兩個文件 - .classpath和.project,另一個.settings文件夾包含單個文件 - org.eclipse.jdt.core .prefs。
哪些文件應該提交給SVN,哪些可以安全排除?
他們都是有用的,如果你想擁有整個團隊一致的設置。
.classpath
和.project
意味着每個人只要導入它就可以啓動並運行一個項目。項目中包含的庫和源文件的任何更改將在檢入時被所有人收集。
.settings
目錄包含代碼格式化選項以及編譯器認爲是警告,錯誤或確定。爲了保持一致性,我也開始檢查這些內容(只要你的團隊中的每個人都可以同意格式化的標準,我猜)。
我發現在Eclipse中通過版本控制共享事物的最大限制是在庫定義中。圖書館的定義似乎只存儲在每個用戶的基礎上,所以如果你在.classpath文件中引用「庫」,所有其他用戶必須手動定義庫的內容(或手動導入導出的庫定義文件) 。
編輯:(以下尋址@ mliebelt的評論)
,如果你想保持開發的一致性/標準化你只提交.settings文件。如果這對於項目來說不是問題,那麼不提交.settings文件就不用擔心維護。特定於個人喜歡的插件的文件可能不需要被提交(儘管我不認爲這會傷害他們,可能會被忽略?)。
我發現值得提交的兩個最常見的是org.eclipse.jdt.core.prefs
和org.eclipse.jdt.ui.prefs
,它們是任何(Java)Eclipse項目的核心。
您可以排除.settings文件夾,但.project文件對於希望重建相同的Eclipse項目的其他開發人員非常有用。如果您檢查文件時,它應該只有相對引用(如果沒有,你應該修改它是這樣。)
與其他答案相比,我已經在中更好地體驗過與我合作的大型開源項目中的.project文件。
你可以不同意我,但有一個問題,共享的.project文件:它們包含在項目中使用的項目性質引用。項目的本質再次依賴於本地開發人員機器上安裝的插件。
示例:如果在Java項目上使用Findbugs,則會將新特性添加到Java項目中。檢查該文件,在另一個系統(沒有安裝FindBugs)上修改它,然後再次在我的系統上使用它,導致Findbugs引用丟失(因此所有Findbugs檢查都將被靜默刪除)。
但是,如果您可以讓所有開發人員同意使用相同的工具,那麼您可以輕鬆解決此問題。
好點。但是,只有在開放源代碼項目中,您不要求所有開發人員使用相同的插件。在那裏你通常甚至不能控制每個人都必須使用哪個IDE,所以你只需檢查sources_only_。 – mliebelt 2013-10-08 05:28:25
提及.settings。對於我們的項目,我發現這個文件是無價的,因爲我們避免了關於編碼準則和格式規則的大量文檔。相反,我們花費了時間來同意日食給我們提供的所有選項,並將它們檢入到項目中。 – 2010-06-14 07:09:53
我是否有權假定生成文件夾沒有必要提交? – 2013-10-07 19:42:56
如果「build」文件夾包含來自編譯器或其他自動生成文件的輸出,通常不會提交它。如果它有源文件(如構建腳本),那麼你可能會。 – Ash 2013-10-08 04:51:47