2013-04-13 132 views
1

我使用Java/Eclipse進行開發,我從來沒有真正使用任何傳統的構建工具,如螞蟻或maven。我通常只是依靠通過eclipse構建項目,而且很少使用命令行。我真的不想花時間去了解ant/maven,但我想知道eclipse是否可以通過其.classpath文件的所有其他設置替換ant/maven的所有功能。Eclipse .classpath文件和build.xml文件之間的關係是什麼?

(請不要建議我一些教程,使它很容易學習螞蟻)。

回答

1

如果您的應用程序在Eclipse之外幾乎沒有存在,那麼也許您應該繼續以這種方式使用Eclipse。但是Eclipse是一個開發者工具(開發者和編寫代碼的人一樣)。除了最微不足道的項目之外,除了開發人員之外,還必須處理其他角色。並且應用程序會經歷整個生命週期。事實上,不論是從項目管理的角度來看,還是從可交付成果的角度來看,不管是從編碼,編譯,組裝依賴性,打包,部署還是從其他角度來看,都有不同的生命週期軸。

當您查看那些可交付成果遍歷階段時,可以從Eclipse內部(手動)完成很多這些步驟。所以,再次,如果這對你有用,讚美。但是,它沒有實現自動化,對於某些步驟(階段),Eclipse並不是正確的工具。例如:持續集成不是Eclipse構建的。 CI服務器可能希望檢出您的源代碼並從頭開始構建。它需要找到依賴關係等,可能會在Eclipse的.classpath文件的基礎上這樣做,但會引入對Eclipse的依賴關係。現在,我已經看到大公司這樣做,但它有點笨重,因爲這再次不是Eclipse的意思。

取而代之的是處理整個生命週期的工具。

* 請注意,「整個」是一個非常主觀的問題。從開發人員的角度來看,生命週期可能會很好地分階段進行,但是大型組織中的其他人可能會發現,他們的職責在生命週期階段的任何分解中都沒有被充分體現。

Maven或Gradle就是這樣的工具。把它們看作是一個有多個站的組裝線。開發人員在使用Eclipse的站點之一,但在流水線下方繼續滾動。 CI是另一個工作站,使用Bamboo,Hudson,Jenkins或類似工具,但在工作中仍在下方的裝配線上。在Eclipse中,m2e插件是Eclipse和流水線Maven之間的連接器。

一個不同的方法是使用腳本,或者替換您在Eclipse中執行的手動步驟,將它們連接在一起或補充它們。顯然有許多可以使用的語言,但在構建工具領域內,Ant非常受歡迎,因爲它的功能與此目的完全一致。

如果您是專業軟件工廠(對於單個開發人員項目可能已經是這種情況),您需要一條裝配線。 Maven或Gradle會爲您提供一個開箱即用的功能。如果你想在上游游泳,你可以使用Ant或其他東西來構建自己的遊戲。如果你真的沒有這方面的要求可言,那麼請在Eclipse中手動進行操作。

儘管被定義在XML中,但Ant作爲開發人員很自然,因爲它有很多傳統的順序編程語言。 Maven和Gradle有不同的方法,因此學習曲線更陡峭。但這絕對值得。如果按照他們的方式進行操作,事情變得輕而易舉,而且您不必編寫任何要添加到裝配線中的其他任何東西。這些手工製作的腳本總是從小處開始,但他們從來不這樣,是嗎?:)

除了這一切,我想提到的是,Maven也非常善於解決依賴問題。這就是最爲人所知的,但這不是這個問題的原因,事實上它只是它能爲你做的一小部分。

3
  • 的Eclipse知道如何構建基於對.project.classpath文件的項目。

  • build.xml是由螞蟻使用建立規則的默認文件名,這樣,當你不帶參數運行ant,它會使用這個文件來找出該怎麼做。

  • pom.xml是用於描述Maven項目的默認文件名,因此當您運行mvn compile時,它將使用此文件來弄清楚如何構建項目。

  • Eclipse可以導入基於Ant構建文件或POM文件的項目,並創建相應的.project.classpath文件。

Eclipse,Ant,Maven是所有不能相互替代的不同工具。它們有一些重疊的功能,但也有一些獨特的功能。

能夠使用命令行構建項目是一項非常有用的技能,也是成爲優秀程序員的一部分。在程序員能力矩陣中,能夠使用命令行構建軟件的級別被視爲級別1(超出級別0,1,2,3),如果您不能這樣做,那就不是那麼好。 http://www.indiangeek.net/programmer-competency-matrix/

我強烈建議學習Maven。

相關問題