刨析Maven(對pom.xml配置文件常用標簽的解析)


  昨天在阿里雲看到了一句話,“當你Learning和Trying之后,如果能盡量把Teaching也做好,會促進我們思考”。共勉!

  這是關於Maven的第三篇博客,這次我們深入了解pom.xml配置文件,它是Maven項目的基礎文件,也是最為重要的文件。

  一、對本項目的聲明:

  

  如上圖所示,這段截取的代碼是一個普通項目的配置的開始,是對本項目的聲明,其中——

  <modleVersion/>標簽:指定了當前pom的版本。

  <groupId/>標簽:定義了該項目屬於哪個組,這與所在的組織和公司是有關聯的,它是該組織域名的倒置。而對於私人來說,比如我,cn代表中國,zuoyu是我在網絡世界的ID,account代表這個項目的名字。

  <artifactId/>標簽:這個定義了當前Maven項目組中的唯一ID,可以理解為一個大項目中的一個小項目,比如這個,就是account項目中的郵件服務模塊。

  <version/>標簽:顧名思義,這是版本說明,而SNAPSHOT說明版本不穩定。

  <packaging/>標簽:這個是指定打包方式,如果不說明,默認為jar方式。

  <name/>標簽:這個是給該項目起一個更友好的名字,方便交流。

  <url/>標簽:該項目的主頁URL,用於生成Maven文檔使用,一般私人寫是用不到的。

 

  二、坐標與依賴

  

  如上圖所示,這段截取代碼是一段對依賴的說明,其中——

  <dependencies/>標簽:是依賴的root目錄,所有的依賴都要放在這個大標簽內。

  <dependency/>標簽:代表着一個依賴,里面聲明要依賴的信息。

  <groupId/>標簽:定義當前Maven項目隸屬的實際項目。如果你與之前的本項目聲明信息中的groupId聯想一下,你就會明白。

   <artifactId/>標簽:該元素定義實際項目中的一個Maven項目(模塊)。

  <version/>標簽:定義當前Maven項目所處的版本。

  <scope/>標簽:對依賴范圍的說明,這個我們看下面...

  依賴范圍說明

  首先我們要清楚,Maven環境里有三個ClassPath:分別為編譯ClassPath、測試ClassPath、運行ClassPath。

  依賴范圍就是為了控制依賴與這三種ClassPath的關系,在Maven中有以下幾種ClassPath:

  

  除此之外,還有一個import的導入依賴范圍,與<dependencyManagement/>標簽有關。

  三、插件的配置

  

  這是一段對插件描述的截取代碼段,這個插件是幾乎所有Maven項目都要聲明的插件,即編譯插件聲明,沒有此聲明,項目就無法編譯。其中——

  <build/>標簽:是對項目構建聲明的大標簽,里面所有聲明都與項目的構建有關。

  <plugins/>標簽:這個是所有插件的root標簽。

  <plugin/>標簽:此標簽代表為一個插件。

  <groupId/>、<artifactId/>和<version/>三個標簽聲明了該插件的坐標。

  <configuration/>標簽:此標簽內聲明了對該插件的配置,此標簽內的子標簽隨着插件的不同而不同,變化多端,不細說,見多了就會了。

 

  四、資源路徑的配置

  

  這段截取的代碼段是關於資源路徑的配置,是指定資源被打包后所放位置。在這其中——

  <resources/>標簽:這個元素描述了項目相關的所有資源路徑列表。

  <resource/>標簽:其中的一個資源路徑配置,例如和項目相關的屬性文件,這些資源被包含在最終的打包文件里。

  <directory/>標簽:描述存放資源的目錄,該路徑相對POM路徑,用來指定resources插件處理哪個目錄下的資源文件。

  <includes/>標簽:包含的模式列表,就是該操作都操作哪些文件。

  其中還有一些標簽沒有用得上,比如——

  <excludes/>標簽:與<includes/>標簽對立,排除的模式列表。

  <targetPath/>標簽:指定打包后該資源所放位置。

  <filtering/>標簽:是否使用參數值代替參數名。參數值取自properties元素或者文件里配置的屬性,文件在filters元素里列出。

  <filters/>標簽:當filtering開關打開時,使用到的過濾器屬性文件列表。

 

  五、測試資源路徑的配置:

  

  這段截取代碼是對測試資源路徑的描述,與資源配置路徑大同小異,描述了單元測試相關的所有資源路徑,例如和單元測試相關的屬性文件。

  

  六、全局配置

  

  這個配置非常的自由,你可以聲明出任何標簽——

  其中的<project.build.sourceEncoding/>聲明了該項目構建的字符編碼為UTF-8格式。當你在配置build的內容時,它會隱式的起到作用。

  其中的<springframework.version/>聲明了該項目的spring依賴包為2.5.6版本,是我聲明的標簽,當然你必須這樣使用才行:

  

 

  O(∩_∩)O,這些都是常用的標簽,我給了一下總結,當然Maven的pom.xml還有很多標簽,以后用到了再研究吧!

  還有關於Maven的繼承與聚合中某些標簽的用法,請移步至  我的Maven的多模塊博客

  博客中如有不嚴謹、不恰當的描述,歡迎批評。

  我的郵箱:  zuoyuip@qq.com

 

  


免責聲明!

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



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