1. 程式人生 > >Maven學習(一)配置檔案pom.xml

Maven學習(一)配置檔案pom.xml

Maven pom.xml

1、定義:

POM全稱專案物件模型(Project Object Model)的簡稱,它是Maven專案中的檔案,使用XML表示,名稱叫做pom.xml。不過這個檔案中包含了該專案所有相關資訊(專案唯一ID、專案依賴、專案url、專案開發者等一切相關資訊)。

2、常見使用

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd"
> <!--宣告專案描述符遵循哪一個POM模型版本。模型本身的版本很少改變,雖然如此,但它仍然是必不可少的,這是為了當Maven引入了新的特性或者其他模型變更的時候,確保穩定性。 --> <modelVersion>4.0.0</modelVersion> <!--g:專案的全球唯一識別符號,通常使用全限定的包名區分該專案和其他專案。並且構建時生成的路徑也是由此生成, 如com.myhome.app生成的相對路徑為:/com/myhome/app --> <!-- a:構件的識別符號,它和group ID一起唯一標識一個構件。換句話說,你不能有兩個不同的專案擁有同樣的artifact ID
和groupID;在某個特定的group ID下,artifact ID也必須是唯一的。構件是專案產生的或使用的一個東西,Maven為專案產生的構件包括:JARs,源 碼,二進位制釋出和WARs等。 --> <!--v:專案當前版本,格式為:主版本.次版本.增量版本-限定版本號 --> <!--gav可以唯一確定一個maven專案--> <groupId>asia.banseon</groupId> <artifactId>banseon-maven2</artifactId> <version>1.0
-SNAPSHOT</version> <!--專案產生的構件型別,例如jar、war、ear、pom。外掛可以建立他們自己的構件型別,所以前面列的不是全部構件型別 --> <packaging>jar</packaging> <!--專案的名稱, Maven產生的文件用 --> <!--描述了這個專案構建環境中的前提條件。 --> <prerequisites> <!--構建該專案或使用該外掛所需要的Maven的最低版本 --> <maven></maven> </prerequisites> <!--構建專案需要的資訊 --> <build> <!--子專案可以引用的預設外掛資訊。該外掛配置項直到被引用時才會被解析或繫結到生命週期。給定外掛的任何本地配置都會覆蓋這裡的配置 --> <pluginManagement> <!--使用的外掛列表 。 --> <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> </plugin> </plugins> </pluginManagement> </build> <!--發現依賴和擴充套件的遠端倉庫列表。 --> <repositories> <!--包含需要連線到遠端倉庫的資訊 --> <repository> <!--遠端倉庫唯一識別符號。可以用來匹配在settings.xml檔案裡配置的遠端倉庫 --> <id>banseon-repository-proxy</id> <!--遠端倉庫名稱 --> <name>banseon-repository-proxy</name> <!--遠端倉庫URL,按protocol://hostname/path形式 --> <url>http://192.168.1.169:9999/repository/</url> </repository> </repositories> <!--發現外掛的遠端倉庫列表,這些外掛用於構建和報表 --> <pluginRepositories> <!--包含需要連線到遠端外掛倉庫的資訊.參見repositories/repository元素 --> <pluginRepository> ...... </pluginRepository> </pluginRepositories> <!--該元素描述了專案相關的所有依賴。 這些依賴組成了專案構建過程中的一個個環節。它們自動從專案定義的倉庫中下載。要獲取更多資訊,請看專案依賴機制。 --> <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> </dependency> </dependencies> <plugins> <!--plugin元素包含描述報表外掛需要的資訊 --> <plugin> <!--報表外掛在倉庫裡的group ID --> <groupId /> <!--報表外掛在倉庫裡的artifact ID --> <artifactId /> <!--被使用的報表外掛的版本(或版本範圍) --> <version /> <!--任何配置是否被傳播到子專案 --> <inherited /> <!--報表外掛的配置 --> <configuration /> </reportSets> </plugin> </plugins> </reporting> </project>