POM是項目對象模型(Project Object Model)的簡稱,它是Maven項目中的文件,使用XML表示,名稱叫做pom.xml。作用類似ant的build.xml文件,功能更強大。該文件用于管理:源代碼、配置文件、開發(fā)者的信息和角色、問題追蹤系統(tǒng)、組織信息、項目授權(quán)、項目的url、項目的依賴關(guān)系等等。事實上,在Maven世界中,project可以什么都沒有,甚至沒有代碼,但是必須包含pom.xml文件。
在平泉等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作定制網(wǎng)站建設(shè),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),營銷型網(wǎng)站建設(shè),外貿(mào)網(wǎng)站制作,平泉網(wǎng)站建設(shè)費用合理。
4.0.0
pom的版本,這是Maven 2&3唯一支持的pom版本,而且不能忽略.
主版本號.次版本號.修訂版本號
版本號的后綴意味著項目的不同階段:
打包類型,沒有提供的話默認(rèn)值為jar,常見的有jar與war,也可以取值:
Maven的一個強大之處是處理項目關(guān)系的方式,可以通過一個公共的本地倉庫去解決問題.
POM的基礎(chǔ)就是依賴列表,Maven下載與在編譯時鏈接依賴與其他所需要的目標(biāo),而且可以處理傳遞性依賴,使列表可以專注于項目所需的依賴.依賴放在
....
....
一個
對應(yīng)項目坐標(biāo)
版本
可用于配置不同jdk的
對應(yīng)的依賴類型,默認(rèn)為jar,通常對應(yīng)與
scope表示類庫與項目的關(guān)系,可以取以下5個值:
當(dāng)
標(biāo)記依賴的可選狀態(tài).
排除不需要的依賴,包含子元素
使用
org.springframework.boot
spring-boot-starter-parent
2.2.1.RELEASE
子pom會繼承父pom的
但不能繼承:
另外,就像java中所有類都繼承于java.lang.Object一樣,所有POM都有一個"Super POM",pom都從它繼承而來,下面是Maven3.5.4的"Super pom":
4.0.0
central
Central Repository
https://repo.maven.apache.org/maven2
default
false
central
Central Repository
https://repo.maven.apache.org/maven2
default
false
never
${project.basedir}/target
${project.build.directory}/classes
${project.artifactId}-${project.version}
${project.build.directory}/test-classes
${project.basedir}/src/main/java
${project.basedir}/src/main/scripts
${project.basedir}/src/test/java
${project.basedir}/src/main/resources
${project.basedir}/src/test/resources
maven-antrun-plugin
1.3
maven-assembly-plugin
2.2-beta-5
maven-dependency-plugin
2.8
maven-release-plugin
2.5.3
${project.build.directory}/site
release-profile
performRelease
true
true
maven-source-plugin
attach-sources
jar-no-fork
true
maven-javadoc-plugin
attach-javadocs
jar
true
maven-deploy-plugin
true
模塊是pom列出的項目,并作為一個組執(zhí)行,每個模塊通過pom文件或項目的相對路徑進(jìn)行列出.
my-project
another-project
third-project/pom-example.xml
不需要考慮模塊間的依賴關(guān)系,Maven會對其進(jìn)行拓?fù)渑判蛞员阍谝蕾嚹K之前構(gòu)建依賴關(guān)系.
屬性是Maven中的值占位符,像Ant一樣,可以以
${x}
這樣的形式在pom.xml的任何位置訪問一個值,也可以被用作默認(rèn)值使用.
有5種形式使用值:
env會使用當(dāng)前shell的環(huán)境變量的值.
例如
${env.PATH}
${project.version}
使用settings.xml中的元素的值
${settings.offline}
java系統(tǒng)屬性值,通過java.lang.System.getProperties()獲取,如
${java.home}
直接使用x,用的是
AAAAA
${aaa}
目標(biāo)的默認(rèn)值,可以取值install,copile
構(gòu)建產(chǎn)生的文件存放目錄
構(gòu)建最終產(chǎn)生的項目名字,但有可能會被更改.
定義一組
描述每個資源的根元素.
構(gòu)建資源的位置,對于jar包放在META-INF里面.
取值true或false,表示是否開啟過濾
資源位置.
指定要包含的資源,使用*作為通配符.
與include相反,要排除的資源列表.
與上面的
與上面的
取值true或false,表示是否加載擴展,默認(rèn)為false.
取值ture或false,是否應(yīng)用pom的繼承關(guān)系,默認(rèn)true.
插件項的相關(guān)配置,可以配置
引入插件的依賴,與前面的
插件可能有多個目標(biāo),
可以為pom設(shè)置各種目錄,比如
構(gòu)建項目時會編譯該目錄的源碼,是相對于pom.xml的相對路徑.
測試時會編譯其中的源碼,也是相對于pom.xml的相對路徑.
這里存放被編譯過的class文件.
存放測試文件編譯后的class文件.
org.apache.maven.wagon
wagon-ftp
3.3.4
是否包含默認(rèn)報表.
報表存放位置.
報表包含的插件以及配置.
包含一組
名稱.
官方license頁面的url.
項目分發(fā)的方式,可以選擇
一些補充信息.
開發(fā)者id.
姓名.
郵箱.
主頁url.
所屬組織.
所屬組織的主頁url.
角色,包含一組
時區(qū),可以以America/New_York或Europe/Berlin這樣的形式,或者設(shè)置一個整數(shù),范圍[-11,12].
開發(fā)者屬性,如如何處理即時消息等.
持續(xù)集成系統(tǒng)的名稱.
持續(xù)集成系統(tǒng)的url.
包含一組
如何發(fā)送通知,比如可以取值mail.
取值true/false,錯誤時發(fā)送.
取值true/false,失敗時發(fā)送.
取值true/false,成功時發(fā)送.
取值true/false,發(fā)生警告時發(fā)送.
相關(guān)配置,例如可以添加
,發(fā)送的地址.郵件名稱.
訂閱郵件地址或鏈接.
取消訂閱郵件或鏈接.
要發(fā)送的郵件地址.
查看舊的郵件的url.
描述如何通過Maven連接到版本控制系統(tǒng),其中connection需要讀權(quán)限,developConnection需要寫權(quán)限.
代碼標(biāo)簽,默認(rèn)為HEAD.
公開的可瀏覽的倉庫,例如ViewVC或Fisheye.
org.apache.maven.plugins
maven-enforcer-plugin
3.0.0-M3
enforce-maven
enforce
3.0
代替.
如何處理遠(yuǎn)征倉庫的發(fā)布版本,包含:
如何處理遠(yuǎn)程倉庫的快照版本,包含的元素與
遠(yuǎn)程倉庫的標(biāo)識符.
遠(yuǎn)程倉庫的名稱.
遠(yuǎn)程倉庫的url.
倉庫布局類型,可以是default或legacy,Maven2.x為倉庫提供了默認(rèn)布局.
還有一個叫
是否默認(rèn)激活,true或false.
指定jdk版本.
若Maven檢測到該屬性就會激活該屬性所在的配置文件,可以指定
有
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。