Maven配置文件pom.xml詳解
什么是POM?
POM是項(xiàng)目對(duì)象模型(Project Object Model)的簡(jiǎn)稱,它是Maven項(xiàng)目中的文件,使用XML表示,名稱叫做pom.xml。在Maven中,當(dāng)談到Project的時(shí)候,不僅僅是一堆包含代碼的文件。一個(gè)Project往往包含一個(gè)配置文件,包括了與開發(fā)者有關(guān)的,缺陷跟蹤系統(tǒng),組織與許可,項(xiàng)目的URL,項(xiàng)目依賴,以及其他。它包含了所有與這個(gè)項(xiàng)目相關(guān)的東西。事實(shí)上,在Maven世界中,project可以什么都沒有,甚至沒有代碼,但是必須包含pom.xml文件。
概覽
下面是一個(gè)POM項(xiàng)目中的pom.xml文件中包含的元素。注意,其中的modelVersion是4.0.0,這是當(dāng)前僅有的可以被Maven2&3同時(shí)支持的POM版本,它是必須的。
<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.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <!-- 基本設(shè)置 --> <groupId>...</groupId> <artifactId>...</artifactId> <version>...</version> <packaging>...</packaging> <dependencies>...</dependencies> <parent>...</parent> <dependencyManagement>...</dependencyManagement> <modules>...</modules> <properties>...</properties> <!-- 構(gòu)建過程的設(shè)置 --> <build>...</build> <reporting>...</reporting> <!-- 項(xiàng)目信息設(shè)置 --> <name>...</name> <description>...</description> <url>...</url> <inceptionYear>...</inceptionYear> <licenses>...</licenses> <organization>...</organization> <developers>...</developers> <contributors>...</contributors> <!-- 環(huán)境設(shè)置 --> <issueManagement>...</issueManagement> <ciManagement>...</ciManagement> <mailingLists>...</mailingLists> <scm>...</scm> <prerequisites>...</prerequisites> <repositories>...</repositories> <pluginRepositories>...</pluginRepositories> <distributionManagement>...</distributionManagement> <profiles>...</profiles> </project>
基本的設(shè)置:
POM包含了一個(gè)project所需要的所有信息,當(dāng)然也就包含了構(gòu)建過程中所需要的插件的配置信息,事實(shí)上,這里申明了"who","what",和"where",然而構(gòu)建生命周期(build lifecycle)s中說的是"when"和"how"。這并不是說POM并能影響生命周期的過程-事實(shí)上它可以。例如,配置一個(gè)可以嵌入ant任務(wù)到POM的mavem-antrun-plugin。它基本上就是一個(gè)聲明。就像build.xml告訴ant當(dāng)運(yùn)行時(shí)它該做什么一樣,一個(gè)POM申明了它自己的配置。如果外力迫使生命周期跳過了ant插件的執(zhí)行,這并不影響那些已經(jīng)執(zhí)行過的插件產(chǎn)生的效果。這一點(diǎn)和build.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.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.codehaus.mojo</groupId> <artifactId>my-project</artifactId> <version>1.0</version> </project>
Maven坐標(biāo)
上面的POM定義的是Maven2&3都承認(rèn)的最小部分。groupId:artifactId:version是必須的字段(盡管在繼承中g(shù)roupId和version不需要明確指出)。這三個(gè)字段就像地址和郵戳,它標(biāo)記了倉庫中的特定位置,就像Maven projects的坐標(biāo)系統(tǒng)一樣。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于jdk8升級(jí)jdk21 cxf報(bào)錯(cuò)的踩坑記錄
在升級(jí)Java項(xiàng)目時(shí),從JDK1.8和Spring2遷移到JDK21和Spring3后,遇到了JAXBException錯(cuò)誤,原因是從JDK11開始移除了jaxb模塊,而cxf在編譯動(dòng)態(tài)客戶端時(shí)默認(rèn)classpath不包含必要的類,解決方法是在jar包同級(jí)目錄創(chuàng)建libs并添加jakarta.xml.bind-api2024-10-10Java常用API類之Math System tostring用法詳解
System類代表系統(tǒng),系統(tǒng)級(jí)的很多屬性和控制方法都放置在該類的內(nèi)部。該類位于java.lang包,Java 的 Math 包含了用于執(zhí)行基本數(shù)學(xué)運(yùn)算的屬性和方法,如初等指數(shù)、對(duì)數(shù)、平方根和三角函數(shù),toString() 方法用于返回以一個(gè)字符串表示的 Number 對(duì)象值2021-10-10Mybatis分頁P(yáng)ageHelper插件代碼實(shí)例
這篇文章主要介紹了Mybatis分頁P(yáng)ageHelper插件代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12Java判斷是否為簡(jiǎn)體中文字符的實(shí)現(xiàn)方法
在應(yīng)用開發(fā)中,判斷簡(jiǎn)體中文字符是一個(gè)重要但常被忽視的任務(wù),簡(jiǎn)體中文和繁體中文在字符上有顯著的區(qū)別,因此在某些場(chǎng)景下我們需要判斷輸入的文本是否為簡(jiǎn)體中文,本文將介紹如何使用Java進(jìn)行此判斷,并提供相應(yīng)的代碼示例,幫助開發(fā)者更好地理解這一過程2024-09-09解決Lombok使用@Builder無法build父類屬性的問題
這篇文章主要介紹了解決Lombok使用@Builder無法build父類屬性的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09Java如何解決發(fā)送Post請(qǐng)求報(bào)Stream?closed問題
這篇文章主要介紹了Java如何解決發(fā)送Post請(qǐng)求報(bào)Stream?closed問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06