Maven pom.xml配置详解(三)
2019獨角獸企業重金招聘Python工程師標準>>>
環境設置
issueManagement
<!--項目的問題管理系統(Bugzilla,Jira,Scarab,或任何你喜歡的問題管理系統)的名稱和URL,本例為jira-->
<issueManagement>
<!--問題管理系統(例如jira)的名字,-->
<system>jira</system>
<!--該項目使用的問題管理系統的URL-->
<url>http://jira.baidu.com/banseon</url>
</issueManagement>
ciManagement
<!--項目持續集成信息-->
<ciManagement>
<!--持續集成系統的名字,例如continuum-->
<system>continuum</system>
<!--該項目使用的持續集成系統的URL(如果持續集成系統有web接口的話)。-->
<url>http://127.0.0.1:8080/continuum</url>
<!--構建完成時,需要通知的開發者/用戶的配置項。包括被通知者信息和通知條件(錯誤,失敗,成功,警告)-->
<notifiers>
<!--配置一種方式,當構建中斷時,以該方式通知用戶/開發者-->
<notifier>
<!--傳送通知的途徑-->
<type>mail</type>
<!--發生錯誤時是否通知-->
<sendOnError>true</sendOnError>
<!--構建失敗時是否通知-->
<sendOnFailure>true</sendOnFailure>
<!--構建成功時是否通知-->
<sendOnSuccess>false</sendOnSuccess>
<!--發生警告時是否通知-->
<sendOnWarning>false</sendOnWarning>
<!--棄用。通知發送到哪里-->
<address/>
<!--通知擴展配置項-->
<configuration><address>continuum@127.0.0.1</address></configuration>
</notifier>
</notifiers>
</ciManagement>
mailingLists
<!--項目相關郵件列表信息-->
<mailingLists>
<!--該元素描述了項目相關的所有郵件列表。自動產生的網站引用這些信息。-->
<mailingList>
<!--郵件的名稱-->
<name>User List</name>
<!--發送郵件的地址或鏈接,如果是郵件地址,創建文檔時,mailto:鏈接會被自動創建-->
<post>user@127.0.0.1</post>
<!--訂閱郵件的地址或鏈接,如果是郵件地址,創建文檔時,mailto:鏈接會被自動創建-->
<subscribe>user-subscribe@127.0.0.1</subscribe>
<!--取消訂閱郵件的地址或鏈接,如果是郵件地址,創建文檔時,mailto:鏈接會被自動創建-->
<unsubscribe>user-unsubscribe@127.0.0.1</unsubscribe>
<!--你可以瀏覽郵件信息的URL-->
<archive>http://127.0.0.1/user/</archive>
<!--備用url的鏈接,可以瀏覽存檔列表。-->
<otherArchives>
<otherArchive>http://base.google.com/base/1/127.0.0.1</otherArchive>
</mailingList>
</mailingLists>
scm
<!--SCM(Source Control Management)標簽允許你配置你的代碼庫,供Maven web站點和其它插件使用。-->
<scm>
<!--SCM的URL,該URL描述了版本庫和如何連接到版本庫。欲知詳情,請看SCMs提供的URL格式和支持列表。該連接只讀。-->
<connection>scm:svn:http://127.0.0.1/svn/my-project</connection>
<!--給開發者使用的,類似connection元素。即該連接不僅僅只讀-->
<developerConnection>scm:svn:https://127.0.0.1/svn/my-project</developerConnection>
<!--當前代碼的標簽,在開發階段默認為HEAD-->
<tag>HEAD</tag>
<!--指向項目的可瀏覽SCM庫(例如ViewVC或者Fisheye)的URL。-->
<url>http://127.0.0.1/websvn/my-project</url>
</scm>
prerequisites
<!--描述了這個項目構建環境中的前提條件。-->
<prerequisites>
<!--構建該項目或使用該插件所需要的Maven的最低版本。默認值:2.0-->
<maven>2.0.6</maven>
</prerequisites>
repositories
<!--遠程倉庫列表,它是Maven用來填充構建系統本地倉庫所使用的一組遠程項目。 -->
???<repositories>
????<!--包含需要連接到遠程倉庫的信息 -->
????<repository>
?????<!--遠程倉庫唯一標識-->
?????<id>codehausSnapshots</id>
?????<!--遠程倉庫名稱 -->
?????<name>Codehaus Snapshots</name>
?????<!--如何處理遠程倉庫里發布版本的下載-->
?????<releases>
??????<!--true或者false表示該倉庫是否為下載某種類型構件(發布版,快照版)開啟。? -->
??????<enabled>false</enabled>
??????<!--該元素指定更新發生的頻率。Maven會比較本地POM和遠程POM的時間戳。這里的選項是:always(一直),daily(默認,每日),interval:X(這里X是以分鐘為單位的時間間隔),或者never(從不)。 -->
??????<updatePolicy>always</updatePolicy>
??????<!--當Maven驗證構件校驗文件失敗時該怎么做-ignore(忽略),fail(失敗),或者warn(警告)。-->
??????<checksumPolicy>warn</checksumPolicy>
?????</releases>
?????<!--如何處理遠程倉庫里快照版本的下載。有了releases和snapshots這兩組配置,POM就可以在每個單獨的倉庫中,為每種類型的構件采取不同的策略。例如,可能有人會決定只為開發目的開啟對快照版本下載的支持。參見repositories/repository/releases元素-->
?????<snapshots>
??????<enabled/><updatePolicy/><checksumPolicy/>
?????</snapshots>
?????<!--遠程倉庫URL,按protocol://hostname/path形式 -->
?????<url>http://snapshots.maven.codehaus.org/maven2</url>
?????<!--用于定位和排序構件的倉庫布局類型-可以是default(默認)或者legacy(遺留)。Maven 2為其倉庫提供了一個默認的布局;然而,Maven 1.x有一種不同的布局。我們可以使用該元素指定布局是default(默認)還是legacy(遺留)。 -->
?????<layout>default</layout>
????</repository>
???</repositories>
pluginRepositories
<!--包含需要連接到遠程插件倉庫的信息.參見repositories/repository元素-->
<pluginRepositories>
<pluginRepository>
<releases>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
</releases>
<snapshots>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
</snapshots>
<id/>
<name/>
<url/>
<layout/>
</pluginRepository>
</pluginRepositories>
distributionManagement
<!--項目分發信息,在執行mvndeploy后表示要發布的位置。有了這些信息就可以把網站部署到遠程服務器或者把構件部署到遠程倉庫。-->
<distributionManagement>
<!--部署項目產生的構件到遠程倉庫需要的信息,參見repositories/repository元素-->
<repository>
<!--true:分配給快照一個唯一的版本號(由時間戳和構建流水號組成)。false:每次都使用相同的版本號 -->
<uniqueVersion>true</uniqueVersion>
?<id/>
<name/>
<url/>
?<layout/>
<releases>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
</releases>
<snapshots>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
</snapshots>
</repository>
<!--構件的快照部署到哪里? -->
<snapshotRepository>
<uniqueVersion>true</uniqueVersion>
?<id/>
<name/>
<url/>
?<layout/>
<releases>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
</releases>
<snapshots>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
</snapshots>
</snapshotRepository>
<!--部署項目的網站需要的信息-->
<site>
<!--部署位置的唯一標識符,用來匹配站點和settings.xml文件里的配置-->
<id>banseon-site</id>
<!--部署位置的名稱-->
<name>businessapiwebsite</name>
<!--部署位置的URL,按protocol://hostname/path形式-->
<url>
scp://svn.baidu.com/banseon:/var/www/localhost/banseon-web
</url>
</site>
<!--項目下載頁面的URL。如果沒有該元素,用戶應該參考主頁。使用該元素的原因是:幫助定位那些不在倉庫里的構件(由于license限制)。-->
<downloadUrl/>
<!--如果構件有了新的groupID和artifactID(構件移到了新的位置),這里列出構件的重定位信息。-->
<relocation>
<!--構件新的groupID-->
<groupId/>
<!--構件新的artifactID-->
<artifactId/>
<!--構件新的版本號-->
<version/>
<!--顯示給用戶的,關于移動的額外信息,例如原因。-->
<message/>
</relocation>
<!--給出該構件在遠程倉庫的狀態。不得在本地項目中設置該元素,因為這是工具自動更新的。有效的值有:none(默認),converted(倉庫管理員從Maven1 POM轉換過來),partner(直接從伙伴Maven2倉庫同步過來),deployed(從Maven2實例部署),verified(被核實時正確的和最終的)。-->
<status/>
</distributionManagement>
profiles
<!--在列的項目構建profile,如果被激活,會修改構建處理-->
<profiles>
<!--根據環境參數或命令行參數激活某個構建處理-->
<profile>
<!--構建配置的唯一標識符。即用于命令行激活,也用于在繼承時合并具有相同標識符的profile。-->
<id>test</id>
???<!--自動觸發profile的條件邏輯。Activation是profile的開啟鑰匙。如POM中的profile一樣,profile的力量來自于它能夠在某些特定的環境中自動使用某些特定的值;這些環境通過activation元素指定。activation元素并不是激活profile的唯一方式。settings.xml文件中的activeProfile元素可以包含profile的id。profile也可以通過在命令行,使用-P標記和逗號分隔的列表來顯式的激活(如,-P test)。-->
???<activation>
????<!--profile默認是否激活的標識-->
????<activeByDefault>false</activeByDefault>
????<!--當匹配的jdk被檢測到,profile被激活。例如,1.4激活JDK1.4,1.4.0_2,而!1.4激活所有版本不是以1.4開頭的JDK。-->
????<jdk>1.5</jdk>
????<!--當匹配的操作系統屬性被檢測到,profile被激活。os元素可以定義一些操作系統相關的屬性。-->
????<os>
?????<!--激活profile的操作系統的名字 -->
?????<name>Windows XP</name>
?????<!--激活profile的操作系統所屬家族(如 'windows')? -->
?????<family>Windows</family>
?????<!--激活profile的操作系統體系結構? -->
?????<arch>x86</arch>
?????<!--激活profile的操作系統版本-->
?????<version>5.1.2600</version>
????</os>
????<!--如果Maven檢測到某一個屬性(其值可以在POM中通過${name}引用),其擁有對應的name = 值,Profile就會被激活。如果值字段是空的,那么存在屬性名稱字段就會激活profile,否則按區分大小寫方式匹配屬性值字段-->
????<property>
?????<!--激活profile的屬性的名稱-->
?????<name>mavenVersion</name>
?????<!--激活profile的屬性的值 -->
?????<value>2.0.3</value>
????</property>
????<!--提供一個文件名,通過檢測該文件的存在或不存在來激活profile。missing檢查文件是否存在,如果不存在則激活profile。另一方面,exists則會檢查文件是否存在,如果存在則激活profile。-->
????<file>
?????<!--如果指定的文件存在,則激活profile。 -->
?????<exists>${basedir}/file2.properties</exists>
?????<!--如果指定的文件不存在,則激活profile。-->
?????<missing>${basedir}/file1.properties</missing>
????</file>
???</activation>
<!--構建項目所需要的信息。參見build元素-->
<build>
<defaultGoal/>
<resources>
<resource>
<targetPath/><filtering/><directory/><includes/><excludes/>
</resource>
</resources>
<testResources>
<testResource>
<targetPath/><filtering/><directory/><includes/><excludes/>
</testResource>
</testResources>
<directory/><finalName/><filters/>
<pluginManagement>
<plugins>
<!--參見build/pluginManagement/plugins/plugin元素-->
<plugin>
<groupId/><artifactId/><version/><extensions/>
<executions>
<execution>
<id/><phase/><goals/><inherited/><configuration/>
</execution>
</executions>
<dependencies>
<!--參見dependencies/dependency元素-->
<dependency>
......
</dependency>
</dependencies>
<goals/><inherited/><configuration/>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<!--參見build/pluginManagement/plugins/plugin元素-->
<plugin>
<groupId/><artifactId/><version/><extensions/>
<executions>
<execution>
<id/><phase/><goals/><inherited/><configuration/>
</execution>
</executions>
<dependencies>
<!--參見dependencies/dependency元素-->
<dependency>
......
</dependency>
</dependencies>
<goals/><inherited/><configuration/>
</plugin>
</plugins>
</build>
<!--發現依賴和擴展的遠程倉庫列表。-->
<repositories>
<!--參見repositories/repository元素-->
<repository>
<releases>
<enabled/><updatePolicy/><checksumPolicy/>
</releases>
<snapshots>
<enabled/><updatePolicy/><checksumPolicy/>
</snapshots>
<id/><name/><url/><layout/>
</repository>
</repositories>
<!--該元素描述了項目相關的所有依賴。這些依賴組成了項目構建過程中的一個個環節。它們自動從項目定義的倉庫中下載。要獲取更多信息,請看項目依賴機制。-->
<dependencies>
<!--參見dependencies/dependency元素-->
<dependency>
......
</dependency>
</dependencies>
<!--不贊成使用.現在Maven忽略該元素.-->
<reports/>
?
<!--參見distributionManagement元素-->
<distributionManagement>
......
</distributionManagement>
<!--參見properties元素-->
<properties/>
</profile>
</profiles>
</project>
<!--參考:
http://maven.apache.org/ref/3.1.0/maven-model/maven.html
https://maven.apache.org/pom.html
-->
轉載于:https://my.oschina.net/u/2454925/blog/653226
總結
以上是生活随笔為你收集整理的Maven pom.xml配置详解(三)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最全IDEA快捷键
- 下一篇: sort和uniq命令