2010-05-24 73 views
22

我是一個試圖學習Java的C#人。我理解Java平臺的語法和基本體系結構,自己做小型項目並沒有問題,但我真的很想下載一些開源項目來學習其他人的工作。但是,我遇到了一個絆腳石,我似乎無法找到任何信息。Java相當於VS解決方案文件

當我下載一個開放源代碼的.NET項目時,我可以用Visual Studio打開.sln文件,並且只加載一切。當然,偶爾會有一些缺失的參考資料或其他內容,但實際上需要的配置很少。我沒有感覺到Java的易用性。目前我正在使用eclipse,並且感覺每個項目都需要使用「從現有源創建」來創建全新的Eclipse項目,並且幾乎沒有任何編譯工作沒有重新配置。就Web項目而言,情況更糟,因爲Eclipse似乎不支持從現有源創建Web項目。我必須從源代碼創建一個標準的Java項目,然後顯然修改項目文件以包含Web工具包的綁定以正常工作。

假設我希望能夠稍後對項目做出貢獻,我不應該對文件結構進行如此劇烈的更改才能使IDE進入可工作狀態。我錯過了什麼?

回答

25

解決這個問題的最好方法是首先從等式中刪除IDE。在C#中只有一個環境,所以假定存在默認的IDE。在Java中,缺省的IDE不存在。

最終Java是關於java源文件和支持jar的。如果你弄清楚這些是什麼,那麼你有99%的回家的路。然後你可以使用你最喜歡的構建系統。某些項目需要運行時環境,如Web服務器來處理JSP文件。如果你明白基本設置是什麼(按照規範的規定),你可以快速設置你的IDE來處理它。

如果我得到一個帶有java文件和支持jar的項目,我啓動Eclipse,創建一個新項目,將其指向項目的基本目錄,Eclipse將自動檢測它找到的內容並相應地設置項目。

但是項目通常包含構建環境。訣竅是找出哪一個:

  • 如果存在build.xml文件,它使用的是ANT。這是一個「make」類似的工具。您可以在構建文件所在的目錄中執行「ant」(如果您安裝了ANT),它會嘗試編譯。所有的IDE都像Eclipse和NetBeans一樣識別build.xml文件,並允許從IDE內部啓動ant。不能保證支持的罐子會出現。

  • 如果存在pom.xml文件,則使用Maven。 Maven也是一個類似工具的工具,但執行更嚴格的構建週期。 Plus(這可能是它最大的優勢),它會自動下載支持的jar。如果你安裝了Maven,你會驚訝於下載的內容......只是坐下來,最終會結束。 IDE通常需要一個插件來支持pom.xml,但是這樣你就可以自動完成整個項目的設置。

  • 如果一個項目文件存在,它通常是一個Eclipse項目

  • 如果nbproject的目錄存在,它是一個NetBeans項目

開始瞭解構建環境/ IDE是更多的工作,試圖在你知道的項目中設置一個項目。所以我總是試着讓它在Eclipse中運行。通常,只要知道IDE,項目就很容易運行。

擁有多種處事方式並不總是令人愉快的,但這是開放社區的成本。如果只有一個IDE,它會讓事情變得更容易,但我喜歡這樣一個事實,即有更多的人試圖找出完成任務的最佳方式。

+2

我喜歡你包含了什麼構建系統/ IDE用於創建項目的線索。這對像我這樣的新手來說非常有幫助。 – Chris 2010-05-24 05:52:16

+0

@TBee是否有可能將build.gradle添加到可能的文件列表中,這些文件代表了源代碼的構建方式。你的答案真的很棒,而且隨着更新的構建系統變得流行起來,它會很好。 Gradle被android studio用於我的經驗的android項目,但它似乎可以用於任何事情(不是任何方式的gradle專家)。 – 2016-04-30 19:18:35

2

在某些情況下,您可能必須作出重大更改。一個設計良好的構建系統在大多數平臺上完全不需要配置,並且在異國平臺上可能只需進行一些更改。但是,Java沒有單一的標準構建系統;有些人使用Eclipse,有些人使用Apache Ant,其他人使用Apache MavenApache Maven2。如果您要從頭開始創建項目,那麼Maven或Ant可能是最理想的方法。如果使用NetBeans IDE,則您創建的項目將自動包含Ant構建文件(以便它可以在使用Ant的所有系統上構建),但會添加其他元數據以便NetBeans IDE識別它。如果您創建Maven項目,可以直接使用Maven或使用Eclipse或NetBeans等IDE,則可以在NetBeans或Eclipse中加載同一項目,而無需進行任何其他配置更改(儘管您可能需要爲Eclipse安裝插件它承認Maven項目; NetBeans認可Maven項目開箱即用)。如果你從頭開始一個項目,你可能會對Java Project Template感興趣。如果您正在爲現有項目做出貢獻,您如何查看/編輯項目取決於所選的構建系統;如果該項目已經使用Maven或Ant,則將其加載到其他IDE中應該相當簡單,而如果該項目使用特定IDE的怪癖或使用一些更具異國情調的構建系統,則可能會更困難。