1. 程式人生 > >#maven一波流(1)——為何用maven

#maven一波流(1)——為何用maven

背景

人們覺得走路累,發明了自行車,人們覺得自行車還是累,發明了汽車,覺得汽車費油汙染環境,發明電動車。

一樣的道理,在Java程式開發中,程式設計師覺得jar包不好管理,就搞了個maven。

maven誕生

在不用maven時,每次開發一個專案,都要找各種各樣的jar包,比如jdbc的包、spring的包、資料庫連線池的包、操作json的包,等等等等。

而且這些包的版本還不好確定,你像spring有很多版本,找包的時候版本得一致。

還有,如果是從網上下載的包,安不安全啊,會不會是有惡意的人編譯過的有問題的jar包,這不得不說是一個安全隱患。

如果一個公司所有程式設計師都要自己找包,太浪費時間和精力了,那不如讓架構師一個人去找。

如果每個公司的架構師都要自己找包,也太浪費時間和精力了,不如搞個倉庫放在網上,所有程式設計師和架構師一起下載。

每次都需要下載也太麻煩了,那不如直接搞個配置檔案放到專案裡,配置檔案上寫啥jar包,專案就自動整合。

OK,就這樣,maven按照程式設計師的需求,誕生了。

maven有啥

首先,maven會有一個網上倉庫,這個倉庫有全世界的包,這個倉庫就叫中央倉庫。

第二,這個倉庫不是在中國,所以國內程式設計師下載的慢,為了解決這個問題,咱們國內也有自己的中央倉庫。比如阿里雲上的maven中央倉庫。

第三,如果有3個專案都依賴幾個相同的jar包,總不能每次都需要單獨下載,所以maven體系裡面有個本地倉庫,jar包先儲存在本地,反正有配置檔案來描述每個jar包,本地倉庫裡面有的可以不用從中央倉庫下載。當然如果覺得專案有問題,也可以把本地的倉庫刪了重新下載就是了。

第四,maven得有個配置檔案,這個配置檔案包含了專案中需要jar包的定義,具體這個配置檔案怎麼定義,這是maven開發者的事情,咱們只要記住格式就行。

第五,maven還得有個程式,因為之前編譯的時候專案裡面是有jar報的,程式可以自動連線jar包編譯。現在專案裡面沒有jar包了,只有一個配置檔案,所以得有個maven程式負責直接通過配置檔案找本地庫jar包編譯。

第六,maven可能還有外掛,比如你用eclipse的,就想直接在eclipse中利用maven構造專案,並完成專案的構建,此時可以直接利用外掛完成呼叫maven的工作,不用直接面對maven。當然maven還是得安裝上,否則調也沒法調。

maven何時用

經過上面這一大段描述,maven何時用也應該很清楚了。

如果專案很小,就引用幾個jar包,或者是個人的小專案,那其實沒必要用maven。你去鄰居小賣鋪買個水還用的著開汽車?

如果專案不小,多人寫作,jar包繁多,建議直接上maven,大家統一配置檔案,相當於一個規範。而且maven還有別的好處,這個後續再說。