环境设置
<!--项目的问题管理系统(Bugzilla,Jira,Scarab,或任何你喜欢的问题管理系统)的名称和URL,本例为jira-->
<issueManagement>
<!--问题管理系统(例如jira)的名字,-->
<system>jira</system>
<!--该项目使用的问题管理系统的URL-->
<url>http://jira.baidu.com/banseon</url>
</issueManagement>
<!--项目持续集成信息-->
<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>[email protected]</address></configuration>
</notifier>
</notifiers>
</ciManagement>
<!--项目相关邮件列表信息-->
<mailingLists>
<!--该元素描述了项目相关的所有邮件列表。自动产生的网站引用这些信息。-->
<mailingList>
<!--邮件的名称-->
<name>User List</name>
<!--发送邮件的地址或链接,如果是邮件地址,创建文档时,mailto:链接会被自动创建-->
<post>[email protected]</post>
<!--订阅邮件的地址或链接,如果是邮件地址,创建文档时,mailto:链接会被自动创建-->
<subscribe>[email protected]</subscribe>
<!--取消订阅邮件的地址或链接,如果是邮件地址,创建文档时,mailto:链接会被自动创建-->
<unsubscribe>[email protected]</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(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>
<!--构建该项目或使用该插件所需要的Maven的最低版本。默认值:2.0-->
<maven>2.0.6</maven>
</prerequisites>
<!--远程仓库列表,它是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>
<!--包含需要连接到远程插件仓库的信息.参见repositories/repository元素-->
<pluginRepositories>
<pluginRepository>
<releases>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
</releases>
<snapshots>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
</snapshots>
<id/>
<name/>
<url/>
<layout/>
</pluginRepository>
</pluginRepositories>
<!--项目分发信息,在执行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>
<!--在列的项目构建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
-->