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è)配置文件,包括了與開(kāi)發(fā)者有關(guān)的,缺陷跟蹤系統(tǒng),組織與許可,項(xiàng)目的URL,項(xiàng)目依賴,以及其他。它包含了所有與這個(gè)項(xiàng)目相關(guān)的東西。事實(shí)上,在Maven世界中,project可以什么都沒(méi)有,甚至沒(méi)有代碼,但是必須包含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)建過(guò)程的設(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)建過(guò)程中所需要的插件的配置信息,事實(shí)上,這里申明了"who","what",和"where",然而構(gòu)建生命周期(build lifecycle)s中說(shuō)的是"when"和"how"。這并不是說(shuō)POM并能影響生命周期的過(guò)程-事實(shí)上它可以。例如,配置一個(gè)可以嵌入ant任務(wù)到POM的mavem-antrun-plugin。它基本上就是一個(gè)聲明。就像build.xml告訴ant當(dāng)運(yùn)行時(shí)它該做什么一樣,一個(gè)POM申明了它自己的配置。如果外力迫使生命周期跳過(guò)了ant插件的執(zhí)行,這并不影響那些已經(jīng)執(zhí)行過(guò)的插件產(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)記了倉(cāng)庫(kù)中的特定位置,就像Maven projects的坐標(biāo)系統(tǒng)一樣。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Spring中HandlerMethod類源碼詳細(xì)解析
這篇文章主要介紹了Spring中HandlerMethod類源碼詳細(xì)解析,HandlerMethod類用于封裝控制器方法信息,包含類信息、方法Method對(duì)象、參數(shù)、注解等信息,具體的接口請(qǐng)求是可以根據(jù)封裝的信息調(diào)用具體的方法來(lái)執(zhí)行業(yè)務(wù)邏輯,需要的朋友可以參考下2023-11-11
mybatis的好幫手之MybatisCodeHelperPro詳解
這篇文章主要介紹了mybatis的好幫手之MybatisCodeHelperPro詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
IntelliJ IDEA失焦自動(dòng)重啟服務(wù)的解決方法
在使用 IntelliJ IDEA運(yùn)行 SpringBoot 項(xiàng)目時(shí),你可能會(huì)遇到一個(gè)令人困擾的問(wèn)題,一旦你的鼠標(biāo)指針離開(kāi)當(dāng)前IDE窗口,點(diǎn)擊其他位置時(shí), IDE 窗口會(huì)失去焦點(diǎn),你的 SpringBoot 服務(wù)就會(huì)自動(dòng)重啟,所以本文給大家介紹了IntelliJ IDEA失焦自動(dòng)重啟服務(wù)的解決方法2023-10-10
解決javaWEB中前后臺(tái)中文亂碼問(wèn)題的3種方法
這篇文章主要介紹了解決javaWEB中前后臺(tái)中文亂碼問(wèn)題的3種方法,中文問(wèn)題一直是很多人難以解決的問(wèn)題,對(duì)這方面感興趣的朋友可以參考一下2015-11-11
springboot如何配置上傳文件的maxRequestSize
這篇文章主要介紹了springboot如何配置上傳文件的maxRequestSize,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
Java基礎(chǔ)教程之static五大應(yīng)用場(chǎng)景
這篇文章主要給大家介紹了關(guān)于Java基礎(chǔ)教程之static五大應(yīng)用場(chǎng)景的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
Spring兩種任務(wù)調(diào)度Scheduled和Async的區(qū)別和應(yīng)用場(chǎng)景詳解
在現(xiàn)代應(yīng)用程序中,任務(wù)調(diào)度是一個(gè)非常普遍的需求,Spring框架提供了兩種主要的方式來(lái)實(shí)現(xiàn)任務(wù)調(diào)度:??Scheduled?? 和 ??Async??,在這篇文章中,我們將詳細(xì)介紹這兩種方式的區(qū)別和應(yīng)用場(chǎng)景,需要的朋友可以參考下2024-12-12
關(guān)于springboot中對(duì)sqlSessionFactoryBean的自定義
這篇文章主要介紹了springboot中對(duì)sqlSessionFactoryBean的自定義方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12

