為什么要用Maven?


    早期還在學怎么用Ant構建項目時,就有看到說Maven是Ant的替代品,但真正意義去了解Maven,還是因為以前的公司一老員工在做OpenJMS二次開發時,從網上下載了源碼,然后用Maven構建它。

當時跟他還因為這個產生了分歧,原因就是在本人看來,eclipse的功能已經非常強大,創建項目、編譯、打包、導出、發布,這些功能eclipse都能做,為什么還要用一個學起來有點復雜,用起來也不是很方便的工具?

說說最近遇到幾個現象:

1、以前要想在eclipse里用Maven功能都是要額外裝m2eclipse插件,但是從eclipse4.4(代號Luna,2014年推出)開始,maven成了它的標准插件,從官網下載下來的eclipse就已經自帶Maven功能

2、SpringFramework官網,不再提供Spring的jar包下載鏈接,而是只提供了Maven倉庫配置信息。

3、在github網站里,很多流行的框架,其源碼根目錄下都有一個pom.xml的文件,也就是說默認都是用Maven來構建項目。

4、在建行這邊開發的項目,基本都是用Maven來構建,雖然開發的電腦不能聯外網,但建行內部用Nexus自己搭建了一個Maven倉庫。

5、一同學,他在惠普里做的項目也是用Maven構建,也是內部自建Maven倉庫。

這些種種跡象說明了Maven已經成為一個標桿,就算現在暫時沒用它,但也不得不去了解它。

因為Maven功能很多,所以看起來會覺得很復雜,自然會覺得學起來難度比較大。這也就讓很多原本想學習用Maven做項目構建的人,望而卻步。

所以到底用,還是不用,這需要一些權衡判斷,所謂工具,就是提供了一些自動化的功能,用它的時候會很方便,不用的話就什么都得自己手動操作。

總結一下Maven可以用上的幾種場景

1、創建項目,自動關聯和下載依賴的jar包。

用Eclipse新建項目時,創建的只是一個空的項目,如果要加入其他框架的功能需要手動導入jar包。一般的處理方法,就是到對應的官網下載相應的jar包。這時候會存在一個疑惑,就是從官網下載下來的軟件包里,包含了它所有功能的jar包,哪一些jar包有用,哪一些沒用,比較笨的辦法就是把所有jar包都扔到項目的lib里面。這樣就造成整個項目體積龐大,增加了項目發布的I/O流量,在開發測試時,服務啟動時間變長(Tomcat要在更多的jar包中去查找相應的類)。

另外一個問題就是各個jar包版本的問題,像很多框架都關聯了apache的commons-lang3,commons-logging等,但不同框架的版本,對應關聯的第三方jar包版本也不一樣。

用Maven,就可以很好的解決jar包關聯問題,比如要Struts框架,只需在pom.xml文件里,添加以下配置

<dependency>
  <groupId>org.apache.struts</groupId>
  <artifactId>struts2-core</artifactId>
  <version>2.3.24.1</version>
</dependency>

Maven就自動的從倉庫中下載相應的jar包,導入到項目中,而且它還能自動傳遞依賴,也就是把struts相關的jar包也導入。

 

2.升級框架的版本
升級某個框架的版本,但卻不知道與它相關聯的哪幾個jar也需要跟着升級,和升級到哪個版本。用法跟上面類似,只需把版本改一下就行。

 

3.自動部署
項目部署到雲服務器時,整個過程全是手動部署,需要的步驟有:打開eclipse,編譯(如果代碼有更新的話),導出war包,上傳war包到雲服務器上,重啟tomcat。如果只是幾台服務器,這樣步驟還能接受,但如果有幾十台,甚至上百台服務器呢?

用Maven只需一個命令,就可以把項目自動部署到遠程服務器上。

4.項目編譯打包導出

這個隨意一個IDE都能做到,所以如果要Maven做這件事,可能的場景,就是做沒有裝IDE的環境里,比如在服務器端Linux環境下。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM