它就像一個IDE?
不是。 (你可能會聽到惱火的聲音,但是它的Build工具,爲什麼?請看下面的內容)
那麼什麼是「建築」?
- 建設帶來的所有工件(類,資源,個XML,jsons等)在一起,並把他們介紹給對方。這樣他們就可以一起工作來實現他們的目標。
- 另外Maven有一個結構,就像測試類中特定的文件夾,特定文件夾中的測試資源,特定文件夾中的Java源類等等,你可以檢查它。
這有好處,當我們像jenkins一樣部署我們的項目時,它知道在哪裏可以找到測試類,在哪裏可以找到測試資源,在哪裏可以找到配置文件以及更多的位置。
當我們在談論巨大的項目時,有很多事情需要配置,沒有內置的工具,這是一個很大的混亂。
那麼如果我正在寫一個需要依賴關係的類,我應該已經知道它們是什麼並導入它們了嗎?
假設你有100個罐子的依賴和需要幾天後對其進行更新, 你會去下載每個罐子在線和手動添加到您的代碼。
此外,您還將與其他會員在您的項目中工作的成員一起分發您的項目。
那繁瑣......
與Maven,只需編輯您想要的版本,POM,它會從中央存儲庫下載。否則將其添加到您的本地回購。
您打開Eclipse,編寫您的類,然後將其導出到JAR文件並且所有人都使用它。這叫做建築嗎?
是的。
如果是,那麼爲什麼你需要Maven?
同樣的理論,你正在用5個自定義罐子開展一個大項目,你在印度,日本和美國都有團隊成員在一起工作。用上述理論,你可以想象你將不得不面對什麼問題。
我希望你明白了maven的真正含義。
這是一個構建工具,可以管理多種大型依賴樹。 *「如果我正在編寫一個需要依賴關係的類,我應該已經知道它們是什麼了,並且不應該導入它們?」 - 但是如果你沒有寫它? 15年以上的代碼編寫後,我可以告訴你,我不記得我的庫需要的所有依賴關係,或者隨着新版本庫的發佈,管理升級過程。 Maven可以讓你自定義獨立於IDE的構建過程,它可以管理依賴性變化的變化,並且通常讓生活變得更容易 – MadProgrammer
這是一個高度靈活的命令行構建工具。您爲它提供了一堆源文件和一組規則,並且它調用各種程序(編譯器,鏈接器等)將源代碼轉換爲已編譯的工件(罐子,戰爭,耳朵,DLL等)。它還下載依賴關係一經請求。但它仍然是一個構建工具。 – dasblinkenlight
什麼是你的構建工具,什麼是「構建」? – genericMetal