【項目管理】項目管理工具Maven

     Maven作爲一款項目管理軟件,是Apache的產品。其實在最初使用Maven的時候我並不是很理解爲什麼要使用它。後來隨着項目的深入,加之找了一些關於Maven的書籍和視頻來看,對Maven的瞭解越來越多,便不得不感慨Maven的強大之處,也很佩服Apache團隊的設計與智慧。

【正文:】

     廢話不多說,我們進入正題。首先介紹一款軟件不得不從安裝開始。這裏我只想說兩點,第一個就是Maven的安裝要配置環境變量,具體怎麼配置,上網搜一下,一搜一大把;第二點,驗證Maven安裝成功,在命令行中輸入mvn -v就可以了。

【pom文件】

     介紹完安裝,我要說一下pom文件。起初在項目中,我只知道需要在pom文件裏面加其他文件的依賴。因爲我們的項目是用分佈式實現的,所以各個層之間都是一個一個獨立的項目,爲了使各項目間能夠聯繫互通,需要在pom文件中加以來。當時不很理解,後來想明白了。我們以往爲了調用某個方法,都往項目中添加Jar包。而引入了Maven之後,不必費勁的往項目中一個一個的添加jar包,而是直接在pom文件中添加依賴,這樣項目就會自動從本地倉庫或遠程倉庫中下載我們所要依賴的jar包。這樣介紹似乎太抽象了些,我慢慢說,先從pom文件的結構說起.....


     上面這個是pom文件的基本結構,最上面的位置是約束文件的寫法的,是pom文件的固定開頭,簡單瞭解就好。後面的groupId一般指某個公司開發的項目名稱;artifactId一般指這個項目裏面具體的某個模塊;最後的version指版本。Maven的使用必須要有網絡,沒有網絡下載不了遠程庫中的它所需要的那些插件。上面我們說到了,其他項目需要添加Jar包,而用Maven管理的項目,只要在pom文件中添加依賴,就會將我們所需要的Jar包從本地倉庫或遠程倉庫,也叫中央倉庫中下載下來。

【添加依賴】


     上圖中就是在pom文件中添加依賴的樣式,只要在dependencies標籤中添加依賴就可以了,樣式具體也是groupId、artifactId和version,把這三個部分添加好就可以了。上面的代碼其實少了一行代碼,就是scope標籤,這也定義了依賴的類型。Maven的依賴分爲以下幾類:


     具體對這幾類依賴的講解如下所示,Maven默認的依賴是compile:


【Maven的直觀好處】

     我們平時用SVN來管理項目的版本,如果你是新來的員工,你需要去SVN把項目down下來,然後再去配置Tomcat之類的。但是有了Maven,你只需要把項目從SVN中下載下來之後,有pom文件,Maven就會自動把項目打包到Tomcat中,這就是Maven自動化的過程。但是我們要按照Maven要求的默認目錄,將項目放到裏面,Maven就會自動根據pom文件對我們的項目進行編譯、測試、發佈等等,這是Maven最直觀的好處。

【本地倉庫】

     其實我們下載安裝的Maven就是一個幾兆的小插件,我不知道叫它插件合適不合適。當我們需要依賴其他項目的時候,Maven就會去倉庫裏面找我們所用到的Jar文件或插件文件。我們安裝的本地倉庫默認是在“我的文檔”中,有個.m2文件夾。我們項目運行過程中所要下載的東西全部都存放在了本地倉庫中。當我們執行編譯語句時,就是根據pom文件中的依賴去找項目所要依賴的Jar包或插件。如果這個Jar包存在於我們的本地倉庫中,就直接從倉庫中引入Jar包到classpath中;說到這裏,我們就說一下Maven中的本地倉庫和遠程倉庫。如果不存在就從網絡中去中央倉庫中去下載這個Jar包。下面說說如何自定義本地倉庫的位置。在Maven安裝文件下的config文件中,有個setting.xml文件,我們自己創建一個本地文件夾,然後把setting.xml文件拷貝到這個文件夾下,在setting.xml文件中的下面這個位置加上這樣一句話,這樣我們就成功將本地倉庫的位置放在我們想放的位置了。

【中央倉庫】

     首先我們要找到中央倉庫的位置,在Maven安裝目錄的lib文件夾下,有個maven-model-builder的jar文件,打開


     打開之後,裏面有個pom文件,扎到這個位置


     這個就是中央倉庫的URL,如果本地倉庫沒有,Maven就會自動去中央倉庫中去下砸Jar包。

【執行語句】

     最後介紹一下Maven的執行語句,介紹前,我先說一下Maven的目錄結構。


     以上是Maven的完整路徑,resources裏面放的指配置文件。

  • 當我們調用了mvn:compile,相當於將src裏面的內容進行了編譯。同時生成一個target文件夾,編譯到了裏面的classes文件夾中
  • 當我們運行mvn:test,就會把test裏面的內容進行編譯,同時把target裏面的內容進行清空
  • 還有mvn:install,可以把我們編譯好的東西安裝到我們的本地倉庫中
  • 還有mvn:package,把我們的文件進行打包
     
     好了,關於Maven的介紹就到這裏了。如果有興趣可以深入學習一下,我這裏介紹的不過是冰山一角。有問題的可以在下方留言,我們一起交流!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章