天天看點

maven 父maven_Maven神話解釋

maven 父maven

Maven标準化适用于所有項目建構,這意味着一旦開發人員熟悉了一個Maven項目,他們便可以全面了解Maven建構。 這通常被 Maven粉絲稱為Maven的“絕佳”功能之一。 确實,Hirn在點此緻意的同時開始了他最新的部落格文章 ,然後繼續讨論并駁回了選擇不使用Maven的常見原因清單。

首先,Maven以Apache風格對所有項目進行模組化,即使它們不是Web伺服器。 Hirn承認所有Maven項目的确看起來像Apache項目,但是對他(一個經驗豐富的Maven開發人員)來說,這隻是一個公認的約定。 “當我檢視appfuse項目時,對我來說,它們就像是Maven項目。”

其次,Maven隻有四個建構階段:編譯,測試,安裝,打包。 再次,這是Hirn承認的問題,但他提出了一種解決方案,該解決方案使用諸如Selenium的另一種工具來測試功能。 根據Maven網站的說法,盡管跟蹤和安裝附加元件是額外的工作,但有目的地使這些建構狀态保持簡單,是以在開始建構之前隻需要學習少量指令即可。 這是弱點還是強項,都取決于您要從建構工具中獲得什麼。 這也是Maven标準目錄結構深五個子目錄約定的完美總結。 對于某些人來說,這可能是個麻煩,但是在希恩看來,這是“良好的慣例”。 他并不孤單,Buildr生成系統Gradle和Scala的simple-build-tool都使用這五個子目錄約定。

對于Hirn而言,誇大說每次使用Maven進行建構時都應連接配接到網際網路以更新依賴關系的說法。 建議您每天使用Internet一次快照,但是可以将其禁用。 是以,網際網路隻是一種推薦資源,從技術上講,無需網際網路就可以建構Maven項目-但是開發人員多久不使用網際網路就嘗試建構任何軟體?

一些開發人員不喜歡Maven如何在自己的.m2存儲庫中管理項目依賴性,該存儲庫不是應用程式檔案夾的一部分,并且可能使跟蹤和打包開發環境成問題。 Hirn認為,這與其說是項目存儲庫,不如是您可能正在處理的多個Maven項目的本地存儲庫。 他建議使用Maven依賴插件來跟蹤由哪些本地回購檔案組成您的單個項目。 同樣,這是額外的工作,但是是否值得進行額外的工作,則取決于您的Maven項目(并且可以說,您正在處理多少個Maven項目。)

最後,他解決了與Maven相關的最棘手的問題之一:它的約定是自動解決其自身的插件依賴性和項目依賴性。 或者,正如希恩所說,聲稱“行家總是下載下傳整個網際網路……即使您不想這麼做。” 該約定是推動Kent R. Spillner的“ Java Build Tools:Ant Vs”的主要問題之一。 專家的咆哮。 但是,Hirn為遭受此問題的開發人員提出了一個解決方案: Maven 2.0.9 ,它引入了指定插件核心集的預設版本的功能。 下載下傳Maven 2.0.9,并確定指定要下載下傳的插件。 對于Hirn來說,就是這麼簡單。 但是,他确實沒有提到在Maven 2.0.9中鎖定在超級pom中的插件隻是預設生命周期注入的插件以及其他一些常見的插件,例如程式集和依賴項。 其餘的插件仍然可以接受非使用者指定的随機更新。

Hirn通過指出Maven的自由和開放源代碼狀态以及建立此建構工具所付出的所有辛勤工作來表達自己的觀點。 Maven并不是完美的,有一天它會被替換,但是它的替換将受益于Maven奠定的基礎。 即使Maven有時會令人沮喪地未能達到目标,但将來會有一個建構工具沒有。 而且,直到那時,如果您不喜歡Maven,那麼Hirn都有一個簡單的解決方案:嘗試使用其他建構工具。

翻譯自: https://jaxenter.com/maven-myths-explained-100471.html

maven 父maven