1. <!--项目持续集成信息 -->
    2. <ciManagement>
    3. <!--持续集成系统的名字,例如continuum -->
    4. <system />
    5. <!--该项目使用的持续集成系统的URL(如果持续集成系统有web接口的话)。 -->
    6. <url />
    7. <!--构建完成时,需要通知的开发者/用户的配置项。包括被通知者信息和通知条件(错误,失败,成功,警告) -->
    8. <notifiers>
    9. <!--配置一种方式,当构建中断时,以该方式通知用户/开发者 -->
    10. <notifier>
    11. <!--传送通知的途径 -->
    12. <type />
    13. <!--发生错误时是否通知 -->
    14. <sendOnError />
    15. <!--构建失败时是否通知 -->
    16. <sendOnFailure />
    17. <!--构建成功时是否通知 -->
    18. <sendOnSuccess />
    19. <!--发生警告时是否通知 -->
    20. <sendOnWarning />
    21. <!--不赞成使用。通知发送到哪里 -->
    22. <address />
    23. <!--扩展配置项 -->
    24. <configuration />
    25. </notifier>
    26. </notifiers>
    27. </ciManagement>
    28. <!--项目创建年份,4位数字。当产生版权信息时需要使用这个值。 -->
    29. <inceptionYear />
    30. <!--项目相关邮件列表信息 -->
    31. <mailingLists>
    32. <!--该元素描述了项目相关的所有邮件列表。自动产生的网站引用这些信息。 -->
    33. <mailingList>
    34. <!--邮件的名称 -->
    35. <name>Demo</name>
    36. <!--发送邮件的地址或链接,如果是邮件地址,创建文档时,mailto: 链接会被自动创建 -->
    37. <post>banseon@126.com</post>
    38. <!--订阅邮件的地址或链接,如果是邮件地址,创建文档时,mailto: 链接会被自动创建 -->
    39. <subscribe>banseon@126.com</subscribe>
    40. <!--取消订阅邮件的地址或链接,如果是邮件地址,创建文档时,mailto: 链接会被自动创建 -->
    41. <unsubscribe>banseon@126.com</unsubscribe>
    42. <!--你可以浏览邮件信息的URL -->
    43. <archive>http:/hi.baidu.com/banseon/demo/dev/</archive>
    44. </mailingList>
    45. </mailingLists>
    46. <!--项目开发者列表 -->
    47. <developers>
    48. <!--某个项目开发者的信息 -->
    49. <developer>
    50. <!--SCM里项目开发者的唯一标识符 -->
    51. <id>HELLO WORLD</id>
    52. <!--项目开发者的全名 -->
    53. <name>banseon</name>
    54. <!--项目开发者的email -->
    55. <email>banseon@126.com</email>
    56. <!--项目开发者的主页的URL -->
    57. <url />
    58. <!--项目开发者在项目中扮演的角色,角色元素描述了各种角色 -->
    59. <roles>
    60. <role>Project Manager</role>
    61. <role>Architect</role>
    62. </roles>
    63. <!--项目开发者所属组织 -->
    64. <organization>demo</organization>
    65. <!--项目开发者所属组织的URL -->
    66. <organizationUrl>http://hi.baidu.com/banseon</organizationUrl>
    67. <!--项目开发者属性,如即时消息如何处理等 -->
    68. <properties>
    69. <dept>No</dept>
    70. </properties>
    71. <!--项目开发者所在时区, -11到12范围内的整数。 -->
    72. <timezone>-5</timezone>
    73. </developer>
    74. </developers>
    75. <!--项目的其他贡献者列表 -->
    76. <contributors>
    77. <!--项目的其他贡献者。参见developers/developer元素 -->
    78. <contributor>
    79. <name />
    80. <email />
    81. <url />
    82. <organization />
    83. <organizationUrl />
    84. <roles />
    85. <timezone />
    86. <properties />
    87. </contributor>
    88. </contributors>
    89. <!--该元素描述了项目所有License列表。 应该只列出该项目的license列表,不要列出依赖项目的 license列表。如果列出多个license,用户可以选择它们中的一个而不是接受所有license。 -->
    90. <licenses>
    91. <!--描述了项目的license,用于生成项目的web站点的license页面,其他一些报表和validation也会用到该元素。 -->
    92. <license>
    93. <!--license用于法律上的名称 -->
    94. <name>Apache 2</name>
    95. <!--官方的license正文页面的URL -->
    96. <url>http://www.baidu.com/banseon/LICENSE-2.0.txt</url>
    97. <!--项目分发的主要方式: repo,可以从Maven库下载 manual, 用户必须手动下载和安装依赖 -->
    98. <distribution>repo</distribution>
    99. <!--关于license的补充信息 -->
    100. <comments>A business-friendly OSS license</comments>
    101. </license>
    102. </licenses>
    103. <!--SCM(Source Control Management)标签允许你配置你的代码库,供Maven web站点和其它插件使用。 -->
    104. <scm>
    105. <!--SCM的URL,该URL描述了版本库和如何连接到版本库。欲知详情,请看SCMs提供的URL格式和列表。该连接只读。 -->
    106. <connection>
    107. scm:svn:http://svn.baidu.com/banseon/maven/banseon/banseon-maven2-trunk(dao-trunk)
    108. </connection>
    109. <!--给开发者使用的,类似connection元素。即该连接不仅仅只读 -->
    110. <developerConnection>
    111. scm:svn:http://svn.baidu.com/banseon/maven/banseon/dao-trunk
    112. </developerConnection>
    113. <!--当前代码的标签,在开发阶段默认为HEAD -->
    114. <tag />
    115. <!--指向项目的可浏览SCM库(例如ViewVC或者Fisheye)的URL。 -->
    116. <url>http://svn.baidu.com/banseon</url>
    117. </scm>
    118. <!--描述项目所属组织的各种属性。Maven产生的文档用 -->
    119. <organization>
    120. <!--组织的全名 -->
    121. <name>demo</name>
    122. <!--组织主页的URL -->
    123. <url>http://www.baidu.com/banseon</url>
    124. </organization>
    125. <!--在列的项目构建profile,如果被激活,会修改构建处理 -->
    126. <profiles>
    127. <!--根据环境参数或命令行参数激活某个构建处理 -->
    128. <profile>
    129. <!--构建配置的唯一标识符。即用于命令行激活,也用于在继承时合并具有相同标识符的profile。 -->
    130. <id />
    131. <!--自动触发profile的条件逻辑。Activation是profile的开启钥匙。profile的力量来自于它 能够在某些特定的环境中自动使用某些特定的值;这些环境通过activation元素指定。activation元素并不是激活profile的唯一方式。 -->
    132. <activation>
    133. <!--profile默认是否激活的标志 -->
    134. <activeByDefault />
    135. <!--当匹配的jdk被检测到,profile被激活。例如,1.4激活JDK1.4,1.4.0_2,而!1.4激活所有版本不是以1.4开头的JDK。 -->
    136. <jdk />
    137. <!--当匹配的操作系统属性被检测到,profile被激活。os元素可以定义一些操作系统相关的属性。 -->
    138. <os>
    139. <!--激活profile的操作系统的名字 -->
    140. <name>Windows XP</name>
    141. <!--激活profile的操作系统所属家族(如 'windows') -->
    142. <family>Windows</family>
    143. <!--激活profile的操作系统体系结构 -->
    144. <arch>x86</arch>
    145. <!--激活profile的操作系统版本 -->
    146. <version>5.1.2600</version>
    147. </os>
    148. <!--如果Maven检测到某一个属性(其值可以在POM中通过${名称}引用),其拥有对应的名称和值,Profile就会被激活。如果值 字段是空的,那么存在属性名称字段就会激活profile,否则按区分大小写方式匹配属性值字段 -->
    149. <property>
    150. <!--激活profile的属性的名称 -->
    151. <name>mavenVersion</name>
    152. <!--激活profile的属性的值 -->
    153. <value>2.0.3</value>
    154. </property>
    155. <!--提供一个文件名,通过检测该文件的存在或不存在来激活profile。missing检查文件是否存在,如果不存在则激活 profile。另一方面,exists则会检查文件是否存在,如果存在则激活profile。 -->
    156. <file>
    157. <!--如果指定的文件存在,则激活profile。 -->
    158. <exists>/usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/
    159. </exists>
    160. <!--如果指定的文件不存在,则激活profile。 -->
    161. <missing>/usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/
    162. </missing>
    163. </file>
    164. </activation>
    165. <!--构建项目所需要的信息。参见build元素 -->
    166. <build>
    167. <defaultGoal />
    168. <resources>
    169. <resource>
    170. <targetPath />
    171. <filtering />
    172. <directory />
    173. <includes />
    174. <excludes />
    175. </resource>
    176. </resources>
    177. <testResources>
    178. <testResource>
    179. <targetPath />
    180. <filtering />
    181. <directory />
    182. <includes />
    183. <excludes />
    184. </testResource>
    185. </testResources>
    186. <directory />
    187. <finalName />
    188. <filters />
    189. <pluginManagement>
    190. <plugins>
    191. <!--参见build/pluginManagement/plugins/plugin元素 -->
    192. <plugin>
    193. <groupId />
    194. <artifactId />
    195. <version />
    196. <extensions />
    197. <executions>
    198. <execution>
    199. <id />
    200. <phase />
    201. <goals />
    202. <inherited />
    203. <configuration />
    204. </execution>
    205. </executions>
    206. <dependencies>
    207. <!--参见dependencies/dependency元素 -->
    208. <dependency>
    209. ......
    210. </dependency>
    211. </dependencies>
    212. <goals />
    213. <inherited />
    214. <configuration />
    215. </plugin>
    216. </plugins>
    217. </pluginManagement>
    218. <plugins>
    219. <!--参见build/pluginManagement/plugins/plugin元素 -->
    220. <plugin>
    221. <groupId />
    222. <artifactId />
    223. <version />
    224. <extensions />
    225. <executions>
    226. <execution>
    227. <id />
    228. <phase />
    229. <goals />
    230. <inherited />
    231. <configuration />
    232. </execution>
    233. </executions>
    234. <dependencies>
    235. <!--参见dependencies/dependency元素 -->
    236. <dependency>
    237. ......
    238. </dependency>
    239. </dependencies>
    240. <goals />
    241. <inherited />
    242. <configuration />
    243. </plugin>
    244. </plugins>
    245. </build>
    246. <!--模块(有时称作子项目) 被构建成项目的一部分。列出的每个模块元素是指向该模块的目录的相对路径 -->
    247. <modules />
    248. <!--发现依赖和扩展的远程仓库列表。 -->
    249. <repositories>
    250. <!--参见repositories/repository元素 -->
    251. <repository>
    252. <releases>
    253. <enabled />
    254. <updatePolicy />
    255. <checksumPolicy />
    256. </releases>
    257. <snapshots>
    258. <enabled />
    259. <updatePolicy />
    260. <checksumPolicy />
    261. </snapshots>
    262. <id />
    263. <name />
    264. <url />
    265. <layout />
    266. </repository>
    267. </repositories>
    268. <!--发现插件的远程仓库列表,这些插件用于构建和报表 -->
    269. <pluginRepositories>
    270. <!--包含需要连接到远程插件仓库的信息.参见repositories/repository元素 -->
    271. <pluginRepository>
    272. <releases>
    273. <enabled />
    274. <updatePolicy />
    275. <checksumPolicy />
    276. </releases>
    277. <snapshots>
    278. <enabled />
    279. <updatePolicy />
    280. <checksumPolicy />
    281. </snapshots>
    282. <id />
    283. <name />
    284. <url />
    285. <layout />
    286. </pluginRepository>
    287. </pluginRepositories>
    288. <!--该元素描述了项目相关的所有依赖。 这些依赖组成了项目构建过程中的一个个环节。它们自动从项目定义的仓库中下载。要获取更多信息,请看项目依赖机制。 -->
    289. <dependencies>
    290. <!--参见dependencies/dependency元素 -->
    291. <dependency>
    292. ......
    293. </dependency>
    294. </dependencies>
    295. <!--不赞成使用. 现在Maven忽略该元素. -->
    296. <reports />
    297. <!--该元素包括使用报表插件产生报表的规范。当用户执行"mvn site",这些报表就会运行。 在页面导航栏能看到所有报表的链接。参见reporting元素 -->
    298. <reporting>
    299. ......
    300. </reporting>
    301. <!--参见dependencyManagement元素 -->
    302. <dependencyManagement>
    303. <dependencies>
    304. <!--参见dependencies/dependency元素 -->
    305. <dependency>
    306. ......
    307. </dependency>
    308. </dependencies>
    309. </dependencyManagement>
    310. <!--参见distributionManagement元素 -->
    311. <distributionManagement>
    312. ......
    313. </distributionManagement>
    314. <!--参见properties元素 -->
    315. <properties />
    316. </profile>
    317. </profiles>
    318. <!--发现依赖和扩展的远程仓库列表。 -->
    319. <repositories>
    320. <!--包含需要连接到远程仓库的信息 -->
    321. <repository>
    322. <!--如何处理远程仓库里发布版本的下载 -->
    323. <releases>
    324. <!--true或者false表示该仓库是否为下载某种类型构件(发布版,快照版)开启。 -->
    325. <enabled />
    326. <!--该元素指定更新发生的频率。Maven会比较本地POM和远程POM的时间戳。这里的选项是:always(一直),daily(默认,每日),interval:X(这里X是以分钟为单位的时间间隔),或者never(从不)。 -->
    327. <updatePolicy />
    328. <!--当Maven验证构件校验文件失败时该怎么做:ignore(忽略),fail(失败),或者warn(警告)。 -->
    329. <checksumPolicy />
    330. </releases>
    331. <!-- 如何处理远程仓库里快照版本的下载。有了releases和snapshots这两组配置,POM就可以在每个单独的仓库中,为每种类型的构件采取不同的
    332. 策略。例如,可能有人会决定只为开发目的开启对快照版本下载的支持。参见repositories/repository/releases元素 -->
    333. <snapshots>
    334. <enabled />
    335. <updatePolicy />
    336. <checksumPolicy />
    337. </snapshots>
    338. <!--远程仓库唯一标识符。可以用来匹配在settings.xml文件里配置的远程仓库 -->
    339. <id>banseon-repository-proxy</id>
    340. <!--远程仓库名称 -->
    341. <name>banseon-repository-proxy</name>
    342. <!--远程仓库URL,按protocol://hostname/path形式 -->
    343. <url>http://192.168.1.169:9999/repository/</url>
    344. <!-- 用于定位和排序构件的仓库布局类型-可以是default(默认)或者legacy(遗留)。Maven 2为其仓库提供了一个默认的布局;然
    345. 而,Maven 1.x有一种不同的布局。我们可以使用该元素指定布局是default(默认)还是legacy(遗留)。 -->
    346. <layout>default</layout>
    347. </repository>
    348. </repositories>
    349. <!--发现插件的远程仓库列表,这些插件用于构建和报表 -->
    350. <pluginRepositories>
    351. <!--包含需要连接到远程插件仓库的信息.参见repositories/repository元素 -->
    352. <pluginRepository>
    353. ......
    354. </pluginRepository>
    355. </pluginRepositories>
    356. <!--不赞成使用. 现在Maven忽略该元素. -->
    357. <reports></reports>
    358. <!--该元素描述使用报表插件产生报表的规范。当用户执行"mvn site",这些报表就会运行。 在页面导航栏能看到所有报表的链接。 -->
    359. <reporting>
    360. <!--true,则,网站不包括默认的报表。这包括"项目信息"菜单中的报表。 -->
    361. <excludeDefaults />
    362. <!--所有产生的报表存放到哪里。默认值是${project.build.directory}/site。 -->
    363. <outputDirectory />
    364. <!--使用的报表插件和他们的配置。 -->
    365. <plugins>
    366. <!--plugin元素包含描述报表插件需要的信息 -->
    367. <plugin>
    368. <!--报表插件在仓库里的group ID -->
    369. <groupId />
    370. <!--报表插件在仓库里的artifact ID -->
    371. <artifactId />
    372. <!--被使用的报表插件的版本(或版本范围) -->
    373. <version />
    374. <!--任何配置是否被传播到子项目 -->
    375. <inherited />
    376. <!--报表插件的配置 -->
    377. <configuration />
    378. <!--一组报表的多重规范,每个规范可能有不同的配置。一个规范(报表集)对应一个执行目标 。例如,有1,2,3,4,5,6,7,8,9个报表。1,2,5构成A报表集,对应一个执行目标。2,5,8构成B报表集,对应另一个执行目标 -->
    379. <reportSets>
    380. <!--表示报表的一个集合,以及产生该集合的配置 -->
    381. <reportSet>
    382. <!--报表集合的唯一标识符,POM继承时用到 -->
    383. <id />
    384. <!--产生报表集合时,被使用的报表的配置 -->
    385. <configuration />
    386. <!--配置是否被继承到子POMs -->
    387. <inherited />
    388. <!--这个集合里使用到哪些报表 -->
    389. <reports />
    390. </reportSet>
    391. </reportSets>
    392. </plugin>
    393. </plugins>
    394. </reporting>
    395. <!--项目分发信息,在执行mvn deploy后表示要发布的位置。有了这些信息就可以把网站部署到远程服务器或者把构件部署到远程仓库。 -->
    396. <distributionManagement>
    397. <!--部署项目产生的构件到远程仓库需要的信息 -->
    398. <repository>
    399. <!--是分配给快照一个唯一的版本号(由时间戳和构建流水号)?还是每次都使用相同的版本号?参见repositories/repository元素 -->
    400. <uniqueVersion />
    401. <id>banseon-maven2</id>
    402. <name>banseon maven2</name>
    403. <url>file://${basedir}/target/deploy</url>
    404. <layout />
    405. </repository>
    406. <!--构件的快照部署到哪里?如果没有配置该元素,默认部署到repository元素配置的仓库,参见distributionManagement/repository元素 -->
    407. <snapshotRepository>
    408. <uniqueVersion />
    409. <id>banseon-maven2</id>
    410. <name>Banseon-maven2 Snapshot Repository</name>
    411. <url>scp://svn.baidu.com/banseon:/usr/local/maven-snapshot</url>
    412. <layout />
    413. </snapshotRepository>
    414. <!--部署项目的网站需要的信息 -->
    415. <site>
    416. <!--部署位置的唯一标识符,用来匹配站点和settings.xml文件里的配置 -->
    417. <id>banseon-site</id>
    418. <!--部署位置的名称 -->
    419. <name>business api website</name>
    420. <!--部署位置的URL,按protocol://hostname/path形式 -->
    421. <url>
    422. scp://svn.baidu.com/banseon:/var/www/localhost/banseon-web
    423. </url>
    424. </site>
    425. <!--项目下载页面的URL。如果没有该元素,用户应该参考主页。使用该元素的原因是:帮助定位那些不在仓库里的构件(由于license限制)。 -->
    426. <downloadUrl />
    427. <!--如果构件有了新的group ID和artifact ID(构件移到了新的位置),这里列出构件的重定位信息。 -->
    428. <relocation>
    429. <!--构件新的group ID -->
    430. <groupId />
    431. <!--构件新的artifact ID -->
    432. <artifactId />
    433. <!--构件新的版本号 -->
    434. <version />
    435. <!--显示给用户的,关于移动的额外信息,例如原因。 -->
    436. <message />
    437. </relocation>
    438. <!-- 给出该构件在远程仓库的状态。不得在本地项目中设置该元素,因为这是工具自动更新的。有效的值有:none(默认),converted(仓库管理员从
    439. Maven 1 POM转换过来),partner(直接从伙伴Maven 2仓库同步过来),deployed(从Maven 2实例部 署),verified(被核实时正确的和最终的)。 -->
    440. <status />
    441. </distributionManagement>