1. 程式人生 > >maven工程pom檔案標籤詳解

maven工程pom檔案標籤詳解

maven是一個軟體工程(Software Project)管理工具。 對於maven來說,一個軟體工程的唯一標識(也叫maven座標)是由groupId(開發者)、artifactId(開發的產品)、version(產品版本) 共同決定的。每個maven管理的工程都有一個打包型別,可以是jar, war, ear 或 pom。打包型別決定了工程最終產物的型別。 其中pom型別用於構件多模組工程。常見的pom標籤如下:

<!--父專案的座標。如果專案中沒有規定某個元素的值,那麼父專案中的對應值即為專案的預設值。 座標包括group ID,artifact ID和 version。-->

    <parent>
     <!--被繼承的父專案的構件識別符號-->
     <artifactId/>
     <!--被繼承的父專案的全球唯一識別符號-->
     <groupId/>
     <!--被繼承的父專案的版本-->
     <version/>
     <!--父專案的pom.xml檔案的相對路徑。相對路徑允許你選擇一個不同的路徑。預設值是../pom.xml。Maven首先在構建當前專案的地方尋找父專案的pom,其次在檔案系統的這個位置(relativePath位置),然後在本地倉庫,最後在遠端倉庫尋找父專案的pom。-->
     <relativePath/>
 </parent>


<!--pom檔案裡多洗使用到的值定義成變數-->

<properties>

<spring.version>3.0.9</spring.version>

</properties>




 <!--引用的預設外掛資訊。該外掛配置項直到被引用時才會被解析或繫結到生命週期。給定外掛的任何本地配置都會覆蓋這裡的配置-->
 <buid>
 <!--使用的外掛列表 。-->
   <plugins>
    <!--plugin元素包含描述外掛所需要的資訊。-->
    <plugin>
     <!--外掛在倉庫裡的group ID-->
     <groupId/>
     <!--外掛在倉庫裡的artifact ID-->
     <artifactId/>
     <!--被使用的外掛的版本(或版本範圍)-->
     <version/>
     <!--是否從該外掛下載Maven擴充套件(例如打包和型別處理器),由於效能原因,只有在真需要下載時,該元素才被設定成enabled。-->
     <extensions/>
     <!--在構建生命週期中執行一組目標的配置。每個目標可能有不同的配置。-->
     <executions>
      <!--execution元素包含了外掛執行需要的資訊-->
      <execution>
       <!--執行目標的識別符號,用於標識構建過程中的目標,或者匹配繼承過程中需要合併的執行目標-->
       <id/>
       <!--綁定了目標的構建生命週期階段,如果省略,目標會被繫結到源資料裡配置的預設階段-->
       <phase/>
       <!--配置的執行目標-->
       <goals/>
       <!--配置是否被傳播到子POM-->
       <inherited/>
       <!--作為DOM物件的配置-->
       <configuration/>
      </execution>
     </executions>
     <!--專案引入外掛所需要的額外依賴-->
     <dependencies>
      <!--參見dependencies/dependency元素-->
      <dependency>
       ......
      </dependency>
     </dependencies>     
     <!--任何配置是否被傳播到子專案-->
     <inherited/>
     <!--作為DOM物件的配置-->
     <configuration/>
    </plugin>
   </plugins>
 </buid>


 <!--該元素描述了專案相關的所有依賴。 這些依賴組成了專案構建過程中的一個個環節。它們自動從專案定義的倉庫中下載。要獲取更多資訊,請看專案依賴機制。-->  
    <dependencies>  
        <dependency>
   <!--依賴的group ID-->
            <groupId>org.apache.maven</groupId>  
            <!--依賴的artifact ID-->
            <artifactId>maven-artifact</artifactId>  
            <!--依賴的版本號。 在Maven 2裡, 也可以配置成版本號的範圍。-->
            <version>3.8.1</version>  
            <!--依賴型別,預設型別是jar。它通常表示依賴的檔案的副檔名,但也有例外。一個型別可以被對映成另外一個副檔名或分類器。型別經常和使用的打包方式對應,儘管這也有例外。一些型別的例子:jar,war,ejb-client和test-jar。如果設定extensions為 true,就可以在plugin裡定義新的型別。所以前面的型別的例子不完整。-->
            <type>jar</type>
            <!--依賴的分類器。分類器可以區分屬於同一個POM,但不同構建方式的構件。分類器名被附加到檔名的版本號後面。例如,如果你想要構建兩個單獨的構件成JAR,一個使用Java 1.4編譯器,另一個使用Java 6編譯器,你就可以使用分類器來生成兩個單獨的JAR構件。-->
            <classifier></classifier>
            <!--依賴範圍。在專案釋出過程中,幫助決定哪些構件被包括進來。欲知詳情請參考依賴機制。 
                - compile :預設範圍,用於編譯   
                - provided:類似於編譯,但支援你期待jdk或者容器提供,類似於classpath   
                - runtime: 在執行時需要使用   
                - test:    用於test任務時使用   
                - system: 需要外在提供相應的元素。通過systemPath來取得   
                - systemPath: 僅用於範圍為system。提供相應的路徑   
                - optional:   當專案自身被依賴時,標註依賴是否傳遞。用於連續依賴時使用-->  
            <scope>test</scope>    
            <!--僅供system範圍使用。注意,不鼓勵使用這個元素,並且在新的版本中該元素可能被覆蓋掉。該元素為依賴規定了檔案系統上的路徑。需要絕對路徑而不是相對路徑。推薦使用屬性匹配絕對路徑,例如${java.home}。--> 
            <systemPath></systemPath>  
            <!--當計算傳遞依賴時, 從依賴構件列表裡,列出被排除的依賴構件集。即告訴maven你只依賴指定的專案,不依賴專案的依賴。此元素主要用於解決版本衝突問題--> 
            <exclusions>
             <exclusion>  
                    <artifactId>spring-core</artifactId>  
                    <groupId>org.springframework</groupId>  
                </exclusion>  
            </exclusions>    
            <!--可選依賴,如果你在專案B中把C依賴宣告為可選,你就需要在依賴於B的專案(例如專案A)中顯式的引用對C的依賴。可選依賴阻斷依賴的傳遞性。-->  
            <optional>true</optional>
        </dependency>
    </dependencies> 

所有標籤:

<!--父專案的座標。如果專案中沒有規定某個元素的值,那麼父專案中的對應值即為專案的預設值。 座標包括group ID,artifact ID和 version。-->
    <parent>
     <!--被繼承的父專案的構件識別符號-->
     <artifactId/>
     <!--被繼承的父專案的全球唯一識別符號-->
     <groupId/>
     <!--被繼承的父專案的版本-->
     <version/>
     <!--父專案的pom.xml檔案的相對路徑。相對路徑允許你選擇一個不同的路徑。預設值是../pom.xml。Maven首先在構建當前專案的地方尋找父專案的pom,其次在檔案系統的這個位置(relativePath位置),然後在本地倉庫,最後在遠端倉庫尋找父專案的pom。-->
     <relativePath/>
 </parent>

 
 
 <!--引用的預設外掛資訊。該外掛配置項直到被引用時才會被解析或繫結到生命週期。給定外掛的任何本地配置都會覆蓋這裡的配置-->
 <buid>
 <!--使用的外掛列表 。-->
   <plugins>
    <!--plugin元素包含描述外掛所需要的資訊。-->
    <plugin>
     <!--外掛在倉庫裡的group ID-->
     <groupId/>
     <!--外掛在倉庫裡的artifact ID-->
     <artifactId/>
     <!--被使用的外掛的版本(或版本範圍)-->
     <version/>
     <!--是否從該外掛下載Maven擴充套件(例如打包和型別處理器),由於效能原因,只有在真需要下載時,該元素才被設定成enabled。-->
     <extensions/>
     <!--在構建生命週期中執行一組目標的配置。每個目標可能有不同的配置。-->
     <executions>
      <!--execution元素包含了外掛執行需要的資訊-->
      <execution>
       <!--執行目標的識別符號,用於標識構建過程中的目標,或者匹配繼承過程中需要合併的執行目標-->
       <id/>
       <!--綁定了目標的構建生命週期階段,如果省略,目標會被繫結到源資料裡配置的預設階段-->
       <phase/>
       <!--配置的執行目標-->
       <goals/>
       <!--配置是否被傳播到子POM-->
       <inherited/>
       <!--作為DOM物件的配置-->
       <configuration/>
      </execution>
     </executions>
     <!--專案引入外掛所需要的額外依賴-->
     <dependencies>
      <!--參見dependencies/dependency元素-->
      <dependency>
       ......
      </dependency>
     </dependencies>     
     <!--任何配置是否被傳播到子專案-->
     <inherited/>
     <!--作為DOM物件的配置-->
     <configuration/>
    </plugin>
   </plugins>
 </buid>

 <!--該元素描述了專案相關的所有依賴。 這些依賴組成了專案構建過程中的一個個環節。它們自動從專案定義的倉庫中下載。要獲取更多資訊,請看專案依賴機制。-->  
    <dependencies>  
        <dependency>
   <!--依賴的group ID-->
            <groupId>org.apache.maven</groupId>  
            <!--依賴的artifact ID-->
            <artifactId>maven-artifact</artifactId>  
            <!--依賴的版本號。 在Maven 2裡, 也可以配置成版本號的範圍。-->
            <version>3.8.1</version>  
            <!--依賴型別,預設型別是jar。它通常表示依賴的檔案的副檔名,但也有例外。一個型別可以被對映成另外一個副檔名或分類器。型別經常和使用的打包方式對應,儘管這也有例外。一些型別的例子:jar,war,ejb-client和test-jar。如果設定extensions為 true,就可以在plugin裡定義新的型別。所以前面的型別的例子不完整。-->
            <type>jar</type>
            <!--依賴的分類器。分類器可以區分屬於同一個POM,但不同構建方式的構件。分類器名被附加到檔名的版本號後面。例如,如果你想要構建兩個單獨的構件成JAR,一個使用Java 1.4編譯器,另一個使用Java 6編譯器,你就可以使用分類器來生成兩個單獨的JAR構件。-->
            <classifier></classifier>
            <!--依賴範圍。在專案釋出過程中,幫助決定哪些構件被包括進來。欲知詳情請參考依賴機制。 
                - compile :預設範圍,用於編譯   
                - provided:類似於編譯,但支援你期待jdk或者容器提供,類似於classpath   
                - runtime: 在執行時需要使用   
                - test:    用於test任務時使用   
                - system: 需要外在提供相應的元素。通過systemPath來取得   
                - systemPath: 僅用於範圍為system。提供相應的路徑   
                - optional:   當專案自身被依賴時,標註依賴是否傳遞。用於連續依賴時使用-->  
            <scope>test</scope>    
            <!--僅供system範圍使用。注意,不鼓勵使用這個元素,並且在新的版本中該元素可能被覆蓋掉。該元素為依賴規定了檔案系統上的路徑。需要絕對路徑而不是相對路徑。推薦使用屬性匹配絕對路徑,例如${java.home}。--> 
            <systemPath></systemPath>  
            <!--當計算傳遞依賴時, 從依賴構件列表裡,列出被排除的依賴構件集。即告訴maven你只依賴指定的專案,不依賴專案的依賴。此元素主要用於解決版本衝突問題--> 
            <exclusions>
             <exclusion>  
                    <artifactId>spring-core</artifactId>  
                    <groupId>org.springframework</groupId>  
                </exclusion>  
            </exclusions>    
            <!--可選依賴,如果你在專案B中把C依賴宣告為可選,你就需要在依賴於B的專案(例如專案A)中顯式的引用對C的依賴。可選依賴阻斷依賴的傳遞性。-->  
            <optional>true</optional>
        </dependency>
    </dependencies> 
 
 
 轉: http://www.cnblogs.com/yangxia-test/p/4396159.html

 

相關推薦

maven工程pom檔案標籤

maven是一個軟體工程(Software Project)管理工具。 對於maven來說,一個軟體工程的唯一標識(也叫maven座標)是由groupId(開發者)、artifactId(開發的產品)、version(產品版本) 共同決定的。每個maven管理的工程都有一個

史上最全的Maven Pom檔案標籤

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="

MAVENmaven系列--pom.xml標籤

pom檔案作為MAVEN中重要的配置檔案,對於它的配置是相當重要。檔案中包含了開發者需遵循的規則、缺陷管理系統、組織、licenses、專案資訊、專案依賴性等。下面將重點介紹一下該檔案的基本組成與功能。 標籤預覽 <project> <modelVersion>4.0.0<

mavenpom.xml標籤

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/200

Mavenpom.xml 標籤

轉載:https://blog.csdn.net/sunzhenhua0608/article/details/32938533pom作為專案物件模型。通過xml表示maven專案,使用pom.xml來實現。主要描述了專案:包括配置檔案;開發者需要遵循的規則,缺陷管理系統,組

Maven專案中POM檔案

pom標頭檔案的解釋 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/200

maven POM.xml 標籤

 pom作為專案物件模型。通過xml表示maven專案,使用pom.xml來實現。主要描述了專案:包括配置檔案;開發者需要遵循的規則,缺陷管理系統,組織和licenses,專案的url,專案的依賴性,以及其他所有的專案相關因素。 <project xmlns="ht

maven POM.xml 標籤

<span style="padding:0px; margin:0px"><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-insta

maven工程pom檔案依賴架包

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLS

mavenpom.xml配置

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.

Maven 工程 POM.XML檔案最全

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.

Maven配置pom檔案

maven核心,pom.xml詳解(轉) 什麼是pom? pom作為專案物件模型。通過xml表示maven專案,使用pom.xml來實現。主要描述了專案:包括配置檔案;開發者需要遵循的規則,缺陷管理系統,組織和licenses,專案的url,專案的依賴性,以及其他所有的專案相關因素。

Maven專案pom檔案

1.Maven私服 依賴和外掛都屬於構件。 二、依賴、依賴的構件庫、外掛庫、構件的釋出包 1.依賴 2.對於依賴的構件庫,通過<repositories>設定 id,庫的ID name,庫的名稱 url,庫的URL layout

Mavenpom檔案

什麼是pom?     pom作為專案物件模型。通過xml表示maven專案,使用pom.xml來實現。主要描述了專案:包括配置檔案;開發者需要遵循的規則,缺陷管理系統,組織和licenses,專案的url,專案的依賴性,以及其他所有的專案相關因素。 快速察看:  

Mavenpom.xml檔案結構

Maven的pom.xml檔案簡稱POM (Project Object Model),是Maven專案的配置和管理核心。 pom.xml檔案包含大量配置資訊,這些資訊大致可以分為4類。 1.POM的模型版本 <modelVersion>4.0.0</m

maven中全域性配置檔案settings.xml及專案pom.xml的完整版

maven中全域性配置檔案settings.xml及專案pom.xml的詳解   一、apache maven的簡介     Apache Maven,是一個軟體(特別是Java軟體)專案管理及自動構建工具,由Apache軟體基金會所提供。基於專案物件

maven中全域性配置檔案settings.xml及專案pom.xml的3

(2)   properties 作用:對應profile的擴充套件屬性列表。 maven屬性和ant中的屬性一樣,可以用來存放一些值。這些值可以在pom.xml中的任何地方使用標記${X}來使用,這裡X是指屬性的名稱。屬性有五種不同的形式,並且都能在se

史上最全的maven pom.xml檔案教程

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="htt

MavenPom檔案

專案繼承 Super POM是maven預設的POM,所有的POM如果不顯式指定parent pom的話都會繼承它,即Super POM中的配置會被繼承到專案中的其他pom中。 可以修改預設的Super Pom,來繼承父pom的一些屬性: <pa

mavenpom檔案

前言    Maven是一個跨平臺的專案管理工具 Maven主要服務於基於Java平臺的專案構建、依賴管理和專案資訊管理。無論是小型的開源類庫專案,還是大型的企業級應用;無論是傳統的瀑布式開發,還是流行