maven工程pom檔案標籤詳解
maven是一個軟體工程(Software Project)管理工具。 對於maven來說,一個軟體工程的唯一標識(也叫maven座標)是由groupId(開發者)、artifactId(開發的產品)、version(產品版本) 共同決定的。每個maven管理的工程都有一個打包型別,可以是jar, war, ear 或 pom。打包型別決定了工程最終產物的型別。 其中pom型別用於構件多模組工程。常見的pom標籤如下:
<!--父專案的座標。如果專案中沒有規定某個元素的值,那麼父專案中的對應值即為專案的預設值。 座標包括group ID,artifact ID和 version。-->
<!--被繼承的父專案的構件識別符號-->
<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="
【MAVEN】maven系列--pom.xml標籤詳解
pom檔案作為MAVEN中重要的配置檔案,對於它的配置是相當重要。檔案中包含了開發者需遵循的規則、缺陷管理系統、組織、licenses、專案資訊、專案依賴性等。下面將重點介紹一下該檔案的基本組成與功能。 標籤預覽 <project> <modelVersion>4.0.0<
maven的pom.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
Maven的pom.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
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.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
Maven中pom檔案詳解
什麼是pom? pom作為專案物件模型。通過xml表示maven專案,使用pom.xml來實現。主要描述了專案:包括配置檔案;開發者需要遵循的規則,缺陷管理系統,組織和licenses,專案的url,專案的依賴性,以及其他所有的專案相關因素。 快速察看:
Maven的pom.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
Maven的Pom檔案詳解
專案繼承 Super POM是maven預設的POM,所有的POM如果不顯式指定parent pom的話都會繼承它,即Super POM中的配置會被繼承到專案中的其他pom中。 可以修改預設的Super Pom,來繼承父pom的一些屬性: <pa
【maven】pom檔案詳解
前言 Maven是一個跨平臺的專案管理工具 Maven主要服務於基於Java平臺的專案構建、依賴管理和專案資訊管理。無論是小型的開源類庫專案,還是大型的企業級應用;無論是傳統的瀑布式開發,還是流行