转载 maven 详解 http://www.cnblogs.com/binyue/p/4729134.html
?
?
--聲明規(guī)范
<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">
<!--聲明項(xiàng)目描述符遵循哪一個(gè)POM模型版本。模型本身的版本很少改變,雖然如此,但它仍然是必不可少的,這是為了當(dāng)Maven引入了新的特性或者其他模型變更的時(shí)候,確保穩(wěn)定性。-->
<modelVersion>4.0.0</modelVersion>
--基礎(chǔ)設(shè)置
<!- groupId在一個(gè)組織或項(xiàng)目中通常是特有的。例如:(大概、也許)Maven所有artifacts的groupId都使用org.apache.maven。groupId并不一定必須使用點(diǎn)符號,例如,JUnit項(xiàng)目。注意使用點(diǎn)符號的groupId不必與項(xiàng)目的包結(jié)構(gòu)相同,但它是一個(gè)很好的做法。 -->
<groupId>...</groupId>
<!--artifactId一般是該項(xiàng)目的名字。它和groupID一起標(biāo)識一個(gè)唯一的項(xiàng)目。換句話說,你不能有兩個(gè)不同的項(xiàng)目擁有同樣的artifactID和groupID;在某個(gè)特定的groupID下,artifactID也必須是唯一的。 -->
<artifactId>...</artifactId>
<!--這是命名的最后一段。groupId:artifactId表示單個(gè)項(xiàng)目,但它們無法描繪具體的版本。version定義當(dāng)前項(xiàng)目的版本,如:1.0(-SNAPSHOT),SNAPSHOT表示快照,說明該項(xiàng)目還處于開發(fā)階段,是不穩(wěn)定版本;建議version格式為:主版本.次版本.增量版本-限定版本號 -->
<version>1.0-SNAPSHOT</version>
<!--項(xiàng)目產(chǎn)生的構(gòu)件類型,例如jar、war、ear、pom等等。插件可以創(chuàng)建他們自己的構(gòu)件類型,所以前面列的不是全部構(gòu)件類型。默認(rèn)值jar。 -->
<packaging>jar</packaging>
--更多項(xiàng)目信息
<!-- 用戶描述項(xiàng)目的名稱,無關(guān)緊要的東西,可選 -->
<name>...</name>
<!-- 寫明開發(fā)團(tuán)隊(duì)的網(wǎng)站,無關(guān)緊要,可選 -->
<url>...</url>
<!--項(xiàng)目的詳細(xì)描述,Maven產(chǎn)生的文檔用。當(dāng)這個(gè)元素能夠用HTML格式描述時(shí)(例如,CDATA中的文本會被解析器忽略,就可以包含HTML標(biāo)簽),不鼓勵(lì)使用純文本描述。如果你需要修改產(chǎn)生的web站點(diǎn)的索引頁面,你應(yīng)該修改你自己的索引頁文件,而不是調(diào)整這里的文檔。 -->
<description>A mavenp roject</description>
<!--項(xiàng)目創(chuàng)建年份,4位數(shù)字。當(dāng)產(chǎn)生版權(quán)信息時(shí)需要使用這個(gè)值。 -->
<inceptionYear>...</inceptionYear>
--許可列表
<!--該元素描述了項(xiàng)目所有License列表。應(yīng)該只列出該項(xiàng)目的license列表,不要列出依賴項(xiàng)目的license列表。如果列出多個(gè)license,用戶可以選擇它們中的一個(gè)而不是接受所有l(wèi)icense。 -->
<licenses>
<!--描述了項(xiàng)目的license,用于生成項(xiàng)目的web站點(diǎn)的license頁面,其他一些報(bào)表和validation也會用到該元素。 -->
<license>
<!--完整的法律許可的名稱。 -->
<name>Apache2</name>
<!--官方的license正文頁面的URL -->
<url>http://www.baidu.com/banseon/LICENSE-2.0.txt</url>
<!--項(xiàng)目分發(fā)的主要方式: repo,可以從Maven庫下載 manual,用戶必須手動下載和安裝依賴 -->
<distribution>repo</distribution>
<!--關(guān)于license的補(bǔ)充信息 -->
<comments>Abusiness-friendlyOSSlicense</comments>
</license>
</licenses>
--組織/公司信息
<!--描述項(xiàng)目所屬組織的各種屬性。Maven產(chǎn)生的文檔用 -->
<organization>
<!--組織的全名 -->
<name>demo</name>
<!--組織主頁的URL -->
<url>http://www.baidu.com</url>
</organization>
--項(xiàng)目開發(fā)者列表
<!--項(xiàng)目開發(fā)者列表 -->
<developers>
<!--某個(gè)項(xiàng)目開發(fā)者的信息 -->
<developer>
<!--SCM里項(xiàng)目開發(fā)者的唯一標(biāo)識符 -->
<id>HELLOWORLD</id>
<!--項(xiàng)目開發(fā)者的全名 -->
<name>HELLOWORLD</name>
<!--項(xiàng)目開發(fā)者的email -->
<email>hello@126.com</email>
<!--項(xiàng)目開發(fā)者的主頁的URL -->
<url />
<!--項(xiàng)目開發(fā)者在項(xiàng)目中扮演的角色,角色元素描述了各種角色 -->
<roles>
<role>ProjectManager</role>
<role>Architect</role>
</roles>
<!--項(xiàng)目開發(fā)者所屬組織 -->
<organization>demo</organization>
<!--項(xiàng)目開發(fā)者所屬組織的URL -->
<organizationUrl>http://hi.baidu.com/banseon</organizationUrl>
<!--項(xiàng)目開發(fā)者所在時(shí)區(qū),-12到14范圍內(nèi)的整數(shù)。 -->
<timezone>-5</timezone>
<!-- 其他配置,鍵值對 -->
<properties>
<picUrl>http://tinyurl.com/prv4t</picUrl>
</properties>
</developer>
</developers>
--貢獻(xiàn)者列表
<!--項(xiàng)目的其他貢獻(xiàn)者列表 -->
<contributors>
<!--項(xiàng)目的其他貢獻(xiàn)者。參見developers/developer元素 -->
<contributor>
<name />
<email />
<url />
<organization />
<organizationUrl />
<roles />
<timezone />
<properties />
</contributor>
</contributors>
--構(gòu)建設(shè)置
<!--構(gòu)建項(xiàng)目需要的信息 -->
<build>
<!-- 預(yù)定義執(zhí)行的目標(biāo)或者階段,必須和命令行的參數(shù)相同。如:jar:jar或者clean install等等。例如:defaultGoal配置clean ?install ,在命令行輸入mvn時(shí)會自動拼接成mvn clean install。 -->
<defaultGoal>install</defaultGoal>
<!-- 編譯輸出目錄,默認(rèn)值basedir/target(不建議修改)??><directory>basedir/target(不建議修改)??><directory>{basedir}/target</directory>
<!-- 構(gòu)建產(chǎn)物的名稱,沒有文件擴(kuò)展名。默認(rèn)值artifactId?artifactId?{version}。 -->
<finalName>artifactId?artifactId?{version}</finalName>
<!-- 單獨(dú)過濾某個(gè)文件,更多內(nèi)容請?jiān)L問如何過濾資源文件 -->
<filters>
<filter>src/main/filters/filter.properties</filter>
</filters>
<!--這個(gè)元素描述了項(xiàng)目相關(guān)的所有資源路徑列表,例如和項(xiàng)目相關(guān)的屬性文件,這些資源被包含在最終的打包文件里。 -->
<resources>
<!--這個(gè)元素描述了項(xiàng)目相關(guān)的資源路徑 -->
<resource>
<!-- 指定build后的resource存放的文件夾。該路徑默認(rèn)是basedir。通常被打包在JAR中的resources的目標(biāo)路徑為META-INF -->
<targetPath></targetPath>
<!--是否使用參數(shù)值代替參數(shù)名。如:aa=name 將my?aa顯示為myname。true代表替換,false代表不替換。參數(shù)值取自properties元素、文件里配置的屬性或者命令行的?D選項(xiàng)。有@aa@和aa顯示為myname。true代表替換,false代表不替換。參數(shù)值取自properties元素、文件里配置的屬性或者命令行的?D選項(xiàng)。有@aa@和{aa}倆種寫法。更多內(nèi)容請查看在線幫助 -->
<filtering>false</filtering>
<!--描述存放資源的目錄,該路徑相對POM路徑。默認(rèn)值basedir/src/main/resources??><directory>basedir/src/main/resources??><directory>{basedir}/src/main/resources </directory>
<!--用于指定要包括的文件。可以使用通配符*。例如**/*.xml。 -->
<includes>
<include>configuration.xml</include>
</includes>
<!--用于指定不需要包括的文件。可以使用通配符*。例如**/*.xml。如果和includes的配置沖突,excludes的優(yōu)先級更高。 -->
<excludes>
<exclude>/properties</exclude>
</excludes>
</resource>
</resources>
<!--該testResources元素塊包含testResource元素。它們的定義是類似的resource 元素,僅在測試階段使用。和resource元素唯一一點(diǎn)不同是testResource的默認(rèn)值是${project.basedir}/src/test/resources。測試資源是不會部署。 -->
<testResources>
<testResource>
<targetPath />
<filtering />
<directory />
<includes />
<excludes />
</testResource>
</testResources>
<plugins>
<!--plugin元素包含描述插件所需要的信息。 -->
<plugin>
<!--插件在倉庫里的groupID -->
<groupId>org.apache.maven.plugins</groupId>
<!--插件在倉庫里的artifactID -->
<artifactId>maven-jar-plugin</artifactId>
<!--被使用的插件的版本(或版本范圍) -->
<version>2.0</version>
<!--是否從該插件下載Maven擴(kuò)展(例如打包和類型處理器),由于性能原因,只有在真需要下載時(shí),該元素才被設(shè)置成enabled。 -->
<extensions>false</extensions>
<!-- true 或 false ,這個(gè)插件的配置是否,可以繼承。默認(rèn)true。 -->
<inherited>true</inherited>
<!-- 請查閱https://maven.apache.org/pom.html#Plugins或者查閱中文版http://blog.csdn.net/tomato__/article/details/13625497 -->
<configuration>
<classifier>test</classifier>
</configuration>
<!-- 請參考dependencies元素 -->
<dependencies>
<dependency>
<groupId />
<artifactId />
<version />
<type />
<classifier />
<scope />
<systemPath />
<exclusions>
<exclusion>
<artifactId />
<groupId />
</exclusion>
</exclusions>
<optional />
</dependency>
</dependencies>
<!--在構(gòu)建生命周期中執(zhí)行一組目標(biāo)的配置。每個(gè)目標(biāo)可能有不同的配置。 -->
<executions>
<!--execution元素包含了插件執(zhí)行需要的信息 -->
<execution>
<!--執(zhí)行目標(biāo)的標(biāo)識符,用于標(biāo)識構(gòu)建過程中的目標(biāo),或者匹配繼承過程中需要合并的執(zhí)行目標(biāo) -->
<id>echodir</id>
<!--綁定了目標(biāo)的構(gòu)建生命周期階段,如果省略,目標(biāo)會被綁定到源數(shù)據(jù)里配置的默認(rèn)階段 -->
<phase>verify</phase>
<!--配置的執(zhí)行目標(biāo) -->
<goals>
<goal>run</goal>
</goals>
<!--配置是否被傳播到子POM -->
<inherited>false</inherited>
<!-- 請查閱https://maven.apache.org/pom.html#Plugins -->
<configuration>
<tasks>
<echo>Build Dir: ${project.build.directory}</echo>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<!--子項(xiàng)目可以引用的默認(rèn)插件信息。該插件配置項(xiàng)直到被引用時(shí)才會被解析或綁定到生命周期。給定插件的任何本地配置都會覆蓋這里的配置 -->
<pluginManagement>
<plugins>
.................
</plugins>
</pluginManagement>
<!--該元素設(shè)置了項(xiàng)目源碼目錄,當(dāng)構(gòu)建項(xiàng)目的時(shí)候,構(gòu)建系統(tǒng)會編譯目錄里的源碼。該路徑是相對于pom.xml的相對路徑。 -->
<sourceDirectory>${basedir}/src/main/java</sourceDirectory>
<!--該元素設(shè)置了項(xiàng)目腳本源碼目錄,該目錄和源碼目錄不同:絕大多數(shù)情況下,該目錄下的內(nèi)容會被拷貝到輸出目錄(因?yàn)槟_本是被解釋的,而不是被編譯的)。 -->
<scriptSourceDirectory>${basedir}/src/main/scripts</scriptSourceDirectory>
<!--該元素設(shè)置了項(xiàng)目單元測試使用的源碼目錄,當(dāng)測試項(xiàng)目的時(shí)候,構(gòu)建系統(tǒng)會編譯目錄里的源碼。該路徑是相對于pom.xml的相對路徑。 -->
<testSourceDirectory>${basedir}/src/test/java</testSourceDirectory>
<!--被編譯過的應(yīng)用程序class文件存放的目錄。 -->
<outputDirectory>${basedir}/target/classes</outputDirectory>
<!--被編譯過的測試class文件存放的目錄。 -->
<testOutputDirectory>${basedir}/target/test-classes</testOutputDirectory>
<!--使用來自該項(xiàng)目的一系列構(gòu)建擴(kuò)展 -->
<extensions>
<!--描述使用到的構(gòu)建擴(kuò)展。 -->
<extension>
<!--構(gòu)建擴(kuò)展的groupId -->
<groupId />
<!--構(gòu)建擴(kuò)展的artifactId -->
<artifactId />
<!--構(gòu)建擴(kuò)展的版本 -->
<version />
</extension>
</extensions>
</build>
--遠(yuǎn)程倉庫列表
<!--遠(yuǎn)程倉庫列表,它是Maven用來填充構(gòu)建系統(tǒng)本地倉庫所使用的一組遠(yuǎn)程項(xiàng)目。 -->
<repositories>
<!--包含需要連接到遠(yuǎn)程倉庫的信息 -->
<repository>
<!--遠(yuǎn)程倉庫唯一標(biāo)識 -->
<id>codehausSnapshots</id>
<!--遠(yuǎn)程倉庫名稱 -->
<name>Codehaus Snapshots</name>
<!--如何處理遠(yuǎn)程倉庫里發(fā)布版本的下載 -->
<releases>
<!--true或者false表示該倉庫是否為下載某種類型構(gòu)件(發(fā)布版,快照版)開啟。 -->
<enabled>false</enabled>
<!--該元素指定更新發(fā)生的頻率。Maven會比較本地POM和遠(yuǎn)程POM的時(shí)間戳。這里的選項(xiàng)是:always(一直),daily(默認(rèn),每日),interval:X(這里X是以分鐘為單位的時(shí)間間隔),或者never(從不)。 -->
<updatePolicy>always</updatePolicy>
<!--當(dāng)Maven驗(yàn)證構(gòu)件校驗(yàn)文件失敗時(shí)該怎么做-ignore(忽略),fail(失敗),或者warn(警告)。 -->
<checksumPolicy>warn</checksumPolicy>
</releases>
<!--如何處理遠(yuǎn)程倉庫里快照版本的下載。有了releases和snapshots這兩組配置,POM就可以在每個(gè)單獨(dú)的倉庫中,為每種類型的構(gòu)件采取不同的策略。例如,可能有人會決定只為開發(fā)目的開啟對快照版本下載的支持。參見repositories/repository/releases元素 -->
<snapshots>
<enabled />
<updatePolicy />
<checksumPolicy />
</snapshots>
<!--遠(yuǎn)程倉庫URL,按protocol://hostname/path形式 -->
<url>http://snapshots.maven.codehaus.org/maven2</url>
<!--用于定位和排序構(gòu)件的倉庫布局類型-可以是default(默認(rèn))或者legacy(遺留)。Maven 2為其倉庫提供了一個(gè)默認(rèn)的布局;然而,Maven?
1.x有一種不同的布局。我們可以使用該元素指定布局是default(默認(rèn))還是legacy(遺留)。 -->
<layout>default</layout>
</repository>
</repositories>
--依賴關(guān)系
<!--該元素描述了項(xiàng)目相關(guān)的所有依賴。這些依賴組成了項(xiàng)目構(gòu)建過程中的一個(gè)個(gè)環(huán)節(jié)。它們自動從項(xiàng)目定義的倉庫中下載。要獲取更多信息,請看項(xiàng)目依賴機(jī)制。 -->
<dependencies>
<dependency>
<!--依賴的groupID -->
<groupId>org.apache.maven</groupId>
<!--依賴的artifactID -->
<artifactId>maven-artifact</artifactId>
<!--依賴的版本號。可以配置成確定的版本號,也可以配置成版本號的范圍。 (, )不包含 [, ]包含 例如:[3.8,4.0) 表示3.8?
- 4.0的版本,但是不包含4.0 -->
<version>3.8.1</version>
<!--依賴類型,默認(rèn)類型是jar。它通常表示依賴的文件的擴(kuò)展名,但也有例外。一個(gè)類型可以被映射成另外一個(gè)擴(kuò)展名或分類器。類型經(jīng)常和使用的打包方式對應(yīng),盡管這也有例外。一些類型的例子:jar,war,ejb-client和test-jar。如果設(shè)置extensions為true,就可以在plugin里定義新的類型。所以前面的類型的例子不完整。 -->
<type>jar</type>
<!--依賴的分類器。分類器可以區(qū)分屬于同一個(gè)POM,但不同構(gòu)建方式的構(gòu)件。分類器名被附加到文件名的版本號后面。例如,如果你想要構(gòu)建兩個(gè)單獨(dú)的構(gòu)件成JAR,一個(gè)使用Java1.4編譯器,另一個(gè)使用Java6編譯器,你就可以使用分類器來生成兩個(gè)單獨(dú)的JAR構(gòu)件。 -->
<classifier></classifier>
<!--依賴范圍。在項(xiàng)目發(fā)布過程中,幫助決定哪些構(gòu)件被包括進(jìn)來。欲知詳情請參考依賴機(jī)制。 -compile:compile是默認(rèn)的范圍;如果沒有提供一個(gè)范圍,那該依賴的范圍就是編譯范?
圍。編譯范圍依賴在所有的classpath中可用,同時(shí)它們也會被打包。 -provided:provided依賴只有在當(dāng)JDK 或者一個(gè)容器已提供該依賴之后才使用。例如,?
如果你開發(fā)了一個(gè)web 應(yīng)用,你可能在編譯 classpath 中需要可用的Servlet API 來編譯一個(gè)servlet,但是你不會想要在打包好的WAR?
中包含這個(gè)Servlet API;這個(gè)Servlet API JAR 由你的應(yīng)用服務(wù)器或者servlet 容器提供。已提供范圍的依賴在編譯時(shí) (不是運(yùn)行時(shí))可用。它不具有傳遞性的,也不會被打包。?
-runtime:runtime依賴在運(yùn)行和測試系統(tǒng)的時(shí)候需要,但在編譯的時(shí)候不需要。比如,你 可能在編譯的時(shí)候只需要JDBC API JAR,而只有在運(yùn)行的時(shí)候才需要JDBC驅(qū)動實(shí)?
現(xiàn)。 -test: test范圍依賴 在一般的 編譯和運(yùn)行時(shí)都不需要,它們只有在測試編譯和測試運(yùn) 行階段可用。 -system:system范圍依賴與provided類似,但是你必須顯式的提供一個(gè)對于本地系統(tǒng)中?
JAR文件的路徑。這么做是為了允許基于本地對象編譯,而這些對象是系統(tǒng)類庫 的一部分。這樣的構(gòu)件應(yīng)該是一直可用的,Maven也不會在倉庫中去尋找它。如?
果你將一個(gè)依賴范圍設(shè)置成系統(tǒng)范圍,你必須同時(shí)提供一個(gè)systemPath元素。注 意該范圍是不推薦使用的(你應(yīng)該一直盡量去從公共或定制的Maven倉庫中引用?
依賴)。 -->
<scope>test</scope>
<!--僅供system范圍使用。注意,不鼓勵(lì)使用這個(gè)元素,并且在新的版本中該元素可能被覆蓋掉。該元素為依賴規(guī)定了文件系統(tǒng)上的路徑。需要絕對路徑而不是相對路徑。推薦使用屬性匹配絕對路徑,例如${java.home}。 -->
<systemPath></systemPath>
<!--默認(rèn)為false,即子項(xiàng)目默認(rèn)都繼承,為true,則子項(xiàng)目必需顯示的引入。例如:假設(shè)項(xiàng)目A在編譯時(shí)需要項(xiàng)目B的代碼,但運(yùn)行時(shí)并不需要項(xiàng)目B,而且我們可能并不需要所有項(xiàng)目都依賴項(xiàng)目B。 -->
<optional>true</optional>
<!--當(dāng)計(jì)算傳遞依賴時(shí),從依賴構(gòu)件列表里,列出被排除的依賴構(gòu)件集。即告訴maven你只依賴指定的項(xiàng)目,不依賴項(xiàng)目的依賴。也可以使用通配符*排除所有依賴。此元素主要用于解決版本沖突問題. -->
<exclusions>
<exclusion>
<artifactId>spring-core</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
</exclusions>
<!--可選依賴,如果你在項(xiàng)目B中把C依賴聲明為可選,你就需要在依賴于B的項(xiàng)目(例如項(xiàng)目A)中顯式的引用對C的依賴。可選依賴阻斷依賴的傳遞性。 -->
<optional>true</optional>
</dependency>
</dependencies>
--為子項(xiàng)目配置依賴信息
<!--繼承自該項(xiàng)目的所有子項(xiàng)目的默認(rèn)依賴信息。這部分的依賴信息不會被立即解析,而是當(dāng)子項(xiàng)目聲明一個(gè)依賴(必須描述groupID和artifactID信息),如果groupID和artifactID以外的一些信息沒有描述,則通過groupID和artifactID匹配到這里的依賴,并使用這里的依賴信息。 -->
<dependencyManagement>
<!--參見dependencies元素 -->
<dependencies>
<dependency>
.....
</dependency>
</dependencies>
</dependencyManagement>
--模塊構(gòu)建
<!--模塊(有時(shí)稱作子項(xiàng)目)被構(gòu)建成項(xiàng)目的一部分。列出的每個(gè)模塊元素是指向該模塊的目錄的相對路徑 -->
<modules>
<module>xhcms-xinhua</module>
<module>xhcms-platform</module>
</modules>
<!-- Ps:繼承和模塊的區(qū)別:繼承父不知子,但子知父。模塊父知子,但子不知父。所以在具體的項(xiàng)目中一般都是繼承和模塊融合使用。 -->
--常量配置
<!--鍵值對,Properties可以在整個(gè)POM中使用,也可以作為觸發(fā)條件。格式是<name>value</name>。 -->
<properties>
<file.encoding>UTF-8</file.encoding>
<jdk.version>1.6</jdk.version>
</properties>
使用方式 如下 :
${file.encoding}
還可以使用project.xx引用pom里定義的其它屬性:如$(project.version}
--資源文件配置
<!--這個(gè)元素描述了項(xiàng)目相關(guān)的所有資源路徑列表,例如和項(xiàng)目相關(guān)的屬性文件,這些資源被包含在最終的打包文件里。 -->
<resources>
<!-- 描述工程中資源的位置 -->
<resource>
<!-- 指定build后的resource存放的文件夾。該路徑默認(rèn)是basedir。通常被打包在JAR中的resources的目標(biāo)路徑為META-INF -->
<targetPath></targetPath>
<!--是否使用參數(shù)值代替參數(shù)名。如:aa=name 將my?aa顯示為myname。true代表替換,false代表不替換。參數(shù)值取自properties元素、文件里配置的屬性或者命令行的?D選項(xiàng)。有@aa@和aa顯示為myname。true代表替換,false代表不替換。參數(shù)值取自properties元素、文件里配置的屬性或者命令行的?D選項(xiàng)。有@aa@和{aa}兩種寫法。 -->
<filtering>false</filtering>
<!--描述存放資源的目錄,該路徑相對POM路徑。默認(rèn)值${basedir}/src/main/resources -->
<directory>${basedir}/src/main/resources</directory>
<!--用于指定要包括的文件。可以使用通配符*。例如**/*.xml。 -->
<includes>
<include>configuration.xml</include>
</includes>
<excludes>
<exclude>**/*.properties</exclude>
</excludes>
</resource>
</resources>
--報(bào)表規(guī)范
<!--該元素描述使用報(bào)表插件產(chǎn)生報(bào)表的規(guī)范。當(dāng)用戶執(zhí)行“mvn site”,這些報(bào)表就會運(yùn)行。在頁面導(dǎo)航欄能看到所有報(bào)表的鏈接。 -->
<reporting>
<!--所有產(chǎn)生的報(bào)表存放到哪里。默認(rèn)值是basedir/target/site。??><outputDirectory>basedir/target/site。??><outputDirectory>{basedir}/target/site</outputDirectory>
<!--如果為true,則網(wǎng)站不包括默認(rèn)的報(bào)表。這包括“項(xiàng)目信息”菜單中的報(bào)表。默認(rèn)false -->
<excludeDefaults>false</excludeDefaults>
<!--使用的報(bào)表插件和他們的配置。 -->
<plugins>
<!--plugin元素包含描述報(bào)表插件需要的信息 -->
<plugin>
<!--報(bào)表插件在倉庫里的groupID,默認(rèn)值是 : org.apache.maven.plugins 。 -->
<groupId>org.apache.maven.plugins</groupId>
<!--報(bào)表插件在倉庫里的artifactID -->
<artifactId>maven-project-info-reports-plugin</artifactId>
<!--被使用的報(bào)表插件的版本(或版本范圍) -->
<version>2.7</version>
<!--任何配置是否被傳播到子項(xiàng)目,默認(rèn)true -->
<inherited>true<inherited />
<!--報(bào)表插件的配置-->
<configuration />
<!--一組報(bào)表的多重規(guī)范,每個(gè)規(guī)范可能有不同的配置。一個(gè)規(guī)范(報(bào)表集)對應(yīng)一個(gè)執(zhí)行目標(biāo)。例如,有1,2,3,4,5,6,7,8,9個(gè)報(bào)表。1,2,5構(gòu)成A報(bào)表集,對應(yīng)一個(gè)執(zhí)行目標(biāo)。2,5,8構(gòu)成B報(bào)表集,對應(yīng)另一個(gè)執(zhí)行目標(biāo)-->
<reportSets>
<!--表示報(bào)表的一個(gè)集合,以及產(chǎn)生該集合的配置 -->
<reportSet>
<!--報(bào)表集合的唯一標(biāo)識符,POM繼承時(shí)用到,默認(rèn)值:default -->
<id>
default
<id>
<!--產(chǎn)生報(bào)表集合時(shí),被使用的報(bào)表的配置 -->
<configuration />
<!--配置是否被繼承到子POMs -->
<inherited />
<!--這個(gè)集合里使用到哪些報(bào)表 -->
<reports />
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
--遠(yuǎn)程插件倉庫配置
<!--包含需要連接到遠(yuǎn)程插件倉庫的信息.參見repositories/repository元素 -->
<pluginRepositories>
<pluginRepository>
<releases>
<enabled />
<updatePolicy />
<checksumPolicy />
</releases>
<snapshots>
<enabled />
<updatePolicy />
<checksumPolicy />
</snapshots>
<id />
<name />
<url />
<layout />
</pluginRepository>
</pluginRepositories>
--項(xiàng)目分發(fā)信息
<!--項(xiàng)目分發(fā)信息,在執(zhí)行mvn deploy后表示要發(fā)布的位置。有了這些信息就可以把網(wǎng)站部署到遠(yuǎn)程服務(wù)器或者把構(gòu)件部署到遠(yuǎn)程倉庫。 -->
<distributionManagement>
<!--部署項(xiàng)目產(chǎn)生的構(gòu)件到遠(yuǎn)程倉庫需要的信息,參見repositories/repository元素 -->
<repository>
<!--true:分配給快照一個(gè)唯一的版本號(由時(shí)間戳和構(gòu)建流水號組成)。false:每次都使用相同的版本號 -->
<uniqueVersion>true</uniqueVersion>
<id />
<name />
<url />
<layout />
<releases>
<enabled />
<updatePolicy />
<checksumPolicy />
</releases>
<snapshots>
<enabled />
<updatePolicy />
<checksumPolicy />
</snapshots>
</repository>
<!--構(gòu)件的快照部署到哪里? -->
<snapshotRepository>
<uniqueVersion>true</uniqueVersion>
<id />
<name />
<url />
<layout />
<releases>
<enabled />
<updatePolicy />
<checksumPolicy />
</releases>
<snapshots>
<enabled />
<updatePolicy />
<checksumPolicy />
</snapshots>
</snapshotRepository>
<!--部署項(xiàng)目的網(wǎng)站需要的信息 -->
<site>
<!--部署位置的唯一標(biāo)識符,用來匹配站點(diǎn)和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>
<!--項(xiàng)目下載頁面的URL。如果沒有該元素,用戶應(yīng)該參考主頁。使用該元素的原因是:幫助定位那些不在倉庫里的構(gòu)件(由于license限制)。 -->
<downloadUrl />
<!--如果構(gòu)件有了新的groupID和artifactID(構(gòu)件移到了新的位置),這里列出構(gòu)件的重定位信息。 -->
<relocation>
<!--構(gòu)件新的groupID -->
<groupId />
<!--構(gòu)件新的artifactID -->
<artifactId />
<!--構(gòu)件新的版本號 -->
<version />
<!--顯示給用戶的,關(guān)于移動的額外信息,例如原因。 -->
<message />
</relocation>
<!--給出該構(gòu)件在遠(yuǎn)程倉庫的狀態(tài)。不得在本地項(xiàng)目中設(shè)置該元素,因?yàn)檫@是工具自動更新的。有效的值有:none(默認(rèn)),converted(倉庫管理員從Maven1?
POM轉(zhuǎn)換過來),partner(直接從伙伴Maven2倉庫同步過來),deployed(從Maven2實(shí)例部署),verified(被核實(shí)時(shí)正確的和最終的)。 -->
<status />
</distributionManagement>
--配置問題管理系統(tǒng),如Jira和Redmine等
<!--項(xiàng)目的問題管理系統(tǒng)(Bugzilla,Jira,Scarab,或任何你喜歡的問題管理系統(tǒng))的名稱和URL,本例為jira -->
<issueManagement>
<!--問題管理系統(tǒng)(例如jira)的名字, -->
<system>jira</system>
<!--該項(xiàng)目使用的問題管理系統(tǒng)的URL -->
<url>http://jira.baidu.com/banseon</url>
</issueManagement>
-- 配置持續(xù)集成信息
<!--項(xiàng)目持續(xù)集成信息 -->
<ciManagement>
<!--持續(xù)集成系統(tǒng)的名字,例如continuum -->
<system>continuum</system>
<!--該項(xiàng)目使用的持續(xù)集成系統(tǒng)的URL(如果持續(xù)集成系統(tǒng)有web接口的話)。 -->
<url>http://127.0.0.1:8080/continuum</url>
<!--構(gòu)建完成時(shí),需要通知的開發(fā)者/用戶的配置項(xiàng)。包括被通知者信息和通知條件(錯(cuò)誤,失敗,成功,警告) -->
<notifiers>
<!--配置一種方式,當(dāng)構(gòu)建中斷時(shí),以該方式通知用戶/開發(fā)者 -->
<notifier>
<!--傳送通知的途徑 -->
<type>mail</type>
<!--發(fā)生錯(cuò)誤時(shí)是否通知 -->
<sendOnError>true</sendOnError>
<!--構(gòu)建失敗時(shí)是否通知 -->
<sendOnFailure>true</sendOnFailure>
<!--構(gòu)建成功時(shí)是否通知 -->
<sendOnSuccess>false</sendOnSuccess>
<!--發(fā)生警告時(shí)是否通知 -->
<sendOnWarning>false</sendOnWarning>
<!--棄用。通知發(fā)送到哪里 -->
<address />
<!--通知擴(kuò)展配置項(xiàng) -->
<configuration>
<address>continuum@127.0.0.1</address>
</configuration>
</notifier>
</notifiers>
</ciManagement>
--配置郵件列表
<!--項(xiàng)目相關(guān)郵件列表信息 -->
<mailingLists>
<!--該元素描述了項(xiàng)目相關(guān)的所有郵件列表。自動產(chǎn)生的網(wǎng)站引用這些信息。 -->
<mailingList>
<!--郵件的名稱 -->
<name>User List</name>
<!--發(fā)送郵件的地址或鏈接,如果是郵件地址,創(chuàng)建文檔時(shí),mailto:鏈接會被自動創(chuàng)建 -->
<post>user@127.0.0.1</post>
<!--訂閱郵件的地址或鏈接,如果是郵件地址,創(chuàng)建文檔時(shí),mailto:鏈接會被自動創(chuàng)建 -->
<subscribe>user-subscribe@127.0.0.1</subscribe>
<!--取消訂閱郵件的地址或鏈接,如果是郵件地址,創(chuàng)建文檔時(shí),mailto:鏈接會被自動創(chuàng)建 -->
<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>
--結(jié)尾
</project>
總結(jié)
以上是生活随笔為你收集整理的转载 maven 详解 http://www.cnblogs.com/binyue/p/4729134.html的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Visual C++ 微软常用运行库合集
- 下一篇: -1岁的产品经理日记(20年秋招产品经理