当前位置: 首页 > 编程日记 > 正文

POM.xml 标签详解

pom作为项目对象模型。通过xml表示maven项目,使用pom.xml来实现。主要描述了项目:包括配置文件;开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性,以及其他所有的项目相关因素。

  1. <span style="padding:0px; margin:0px"><project xmlns="http://maven.apache.org/POM/4.0.0"     
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd">     
  4. <!--父项目的坐标。如果项目中没有规定某个元素的值,那么父项目中的对应值即为项目的默认值。 坐标包括group ID,artifact ID和 version。-->    
  5. <parent>    
  6. <!--被继承的父项目的构件标识符-->    
  7. <artifactId/>    
  8. <!--被继承的父项目的全球唯一标识符-->    
  9. <groupId/>    
  10. <!--被继承的父项目的版本-->    
  11. <version/>    
  12. <!-- 父项目的pom.xml文件的相对路径。相对路径允许你选择一个不同的路径。默认值是../pom.xml。Maven首先在构建当前项目的地方寻找父项 目的pom,其次在文件系统的这个位置(relativePath位置),然后在本地仓库,最后在远程仓库寻找父项目的pom。-->    
  13. <relativePath/>    
  14. </parent>    
  15. <!--声明项目描述符遵循哪一个POM模型版本。模型本身的版本很少改变,虽然如此,但它仍然是必不可少的,这是为了当Maven引入了新的特性或者其他模型变更的时候,确保稳定性。-->       
  16. <modelVersion>4.0.0</modelVersion>     
  17. <!--项目的全球唯一标识符,通常使用全限定的包名区分该项目和其他项目。并且构建时生成的路径也是由此生成, 如com.mycompany.app生成的相对路径为:/com/mycompany/app-->     
  18. <groupId>asia.banseon</groupId>     
  19. <!-- 构件的标识符,它和group ID一起唯一标识一个构件。换句话说,你不能有两个不同的项目拥有同样的artifact ID和groupID;在某个 特定的group ID下,artifact ID也必须是唯一的。构件是项目产生的或使用的一个东西,Maven为项目产生的构件包括:JARs,源 码,二进制发布和WARs等。-->     
  20. <artifactId>banseon-maven2</artifactId>     
  21. <!--项目产生的构件类型,例如jar、war、ear、pom。插件可以创建他们自己的构件类型,所以前面列的不是全部构件类型-->     
  22. <packaging>jar</packaging>     
  23. <!--项目当前版本,格式为:主版本.次版本.增量版本-限定版本号-->     
  24. <version>1.0-SNAPSHOT</version>     
  25. <!--项目的名称, Maven产生的文档用-->     
  26. <name>banseon-maven</name>     
  27. <!--项目主页的URL, Maven产生的文档用-->     
  28. <url>http://www.baidu.com/banseon</url>     
  29. <!-- 项目的详细描述, Maven 产生的文档用。  当这个元素能够用HTML格式描述时(例如,CDATA中的文本会被解析器忽略,就可以包含HTML标 签), 不鼓励使用纯文本描述。如果你需要修改产生的web站点的索引页面,你应该修改你自己的索引页文件,而不是调整这里的文档。-->     
  30. <description>A maven project to study maven.</description>     
  31. <!--描述了这个项目构建环境中的前提条件。-->    
  32. <prerequisites>    
  33. <!--构建该项目或使用该插件所需要的Maven的最低版本-->    
  34. <maven/>    
  35. </prerequisites>    
  36. <!--项目的问题管理系统(Bugzilla, Jira, Scarab,或任何你喜欢的问题管理系统)的名称和URL,本例为 jira-->     
  37. <issueManagement>    
  38. <!--问题管理系统(例如jira)的名字,-->     
  39. <system>jira</system>     
  40. <!--该项目使用的问题管理系统的URL-->    
  41. <url>http://jira.baidu.com/banseon</url>     
  42. </issueManagement>     
  43. <!--项目持续集成信息-->    
  44. <ciManagement>    
  45. <!--持续集成系统的名字,例如continuum-->    
  46. <system/>    
  47. <!--该项目使用的持续集成系统的URL(如果持续集成系统有web接口的话)。-->    
  48. <url/>    
  49. <!--构建完成时,需要通知的开发者/用户的配置项。包括被通知者信息和通知条件(错误,失败,成功,警告)-->    
  50. <notifiers>    
  51. <!--配置一种方式,当构建中断时,以该方式通知用户/开发者-->    
  52. <notifier>    
  53. <!--传送通知的途径-->    
  54. <type/>    
  55. <!--发生错误时是否通知-->    
  56. <sendOnError/>    
  57. <!--构建失败时是否通知-->    
  58. <sendOnFailure/>    
  59. <!--构建成功时是否通知-->    
  60. <sendOnSuccess/>    
  61. <!--发生警告时是否通知-->    
  62. <sendOnWarning/>    
  63. <!--不赞成使用。通知发送到哪里-->    
  64. <address/>    
  65. <!--扩展配置项-->    
  66. <configuration/>    
  67. </notifier>    
  68. </notifiers>    
  69. </ciManagement>    
  70. <!--项目创建年份,4位数字。当产生版权信息时需要使用这个值。-->    
  71. <inceptionYear/>    
  72. <!--项目相关邮件列表信息-->     
  73. <mailingLists>    
  74. <!--该元素描述了项目相关的所有邮件列表。自动产生的网站引用这些信息。-->     
  75. <mailingList>     
  76. <!--邮件的名称-->    
  77. <name>Demo</name>     
  78. <!--发送邮件的地址或链接,如果是邮件地址,创建文档时,mailto: 链接会被自动创建-->     
  79. <post>banseon@126.com</post>     
  80. <!--订阅邮件的地址或链接,如果是邮件地址,创建文档时,mailto: 链接会被自动创建-->     
  81. <subscribe>banseon@126.com</subscribe>     
  82. <!--取消订阅邮件的地址或链接,如果是邮件地址,创建文档时,mailto: 链接会被自动创建-->     
  83. <unsubscribe>banseon@126.com</unsubscribe>     
  84. <!--你可以浏览邮件信息的URL-->    
  85. <archive>http:/hi.baidu.com/banseon/demo/dev/</archive>     
  86. </mailingList>     
  87. </mailingLists>     
  88. <!--项目开发者列表-->     
  89. <developers>     
  90. <!--某个项目开发者的信息-->    
  91. <developer>     
  92. <!--SCM里项目开发者的唯一标识符-->    
  93. <id>HELLO WORLD</id>     
  94. <!--项目开发者的全名-->    
  95. <name>banseon</name>     
  96. <!--项目开发者的email-->    
  97. <email>banseon@126.com</email>     
  98. <!--项目开发者的主页的URL-->    
  99. <url/>    
  100. <!--项目开发者在项目中扮演的角色,角色元素描述了各种角色-->    
  101. <roles>     
  102. <role>Project Manager</role>     
  103. <role>Architect</role>     
  104. </roles>    
  105. <!--项目开发者所属组织-->    
  106. <organization>demo</organization>     
  107. <!--项目开发者所属组织的URL-->    
  108. <organizationUrl>http://hi.baidu.com/banseon</organizationUrl>     
  109. <!--项目开发者属性,如即时消息如何处理等-->    
  110. <properties>     
  111. <dept>No</dept>     
  112. </properties>    
  113. <!--项目开发者所在时区, -11到12范围内的整数。-->    
  114. <timezone>-5</timezone>     
  115. </developer>     
  116. </developers>     
  117. <!--项目的其他贡献者列表-->     
  118. <contributors>    
  119. <!--项目的其他贡献者。参见developers/developer元素-->    
  120. <contributor>    
  121. <name/><email/><url/><organization/><organizationUrl/><roles/><timezone/><properties/>    
  122. </contributor>         
  123. </contributors>       
  124. <!--该元素描述了项目所有License列表。 应该只列出该项目的license列表,不要列出依赖项目的 license列表。如果列出多个license,用户可以选择它们中的一个而不是接受所有license。-->     
  125. <licenses>    
  126. <!--描述了项目的license,用于生成项目的web站点的license页面,其他一些报表和validation也会用到该元素。-->     
  127. <license>    
  128. <!--license用于法律上的名称-->    
  129. <name>Apache 2</name>     
  130. <!--官方的license正文页面的URL-->    
  131. <url>http://www.baidu.com/banseon/LICENSE-2.0.txt</url>     
  132. <!--项目分发的主要方式:
  133. repo,可以从Maven库下载
  134. manual, 用户必须手动下载和安装依赖-->    
  135. <distribution>repo</distribution>     
  136. <!--关于license的补充信息-->    
  137. <comments>A business-friendly OSS license</comments>     
  138. </license>     
  139. </licenses>     
  140. <!--SCM(Source Control Management)标签允许你配置你的代码库,供Maven web站点和其它插件使用。-->     
  141. <scm>     
  142. <!--SCM的URL,该URL描述了版本库和如何连接到版本库。欲知详情,请看SCMs提供的URL格式和列表。该连接只读。-->     
  143. <connection>     
  144. scm:svn:http://svn.baidu.com/banseon/maven/banseon/banseon-maven2-trunk(dao-trunk)
  145. </connection>     
  146. <!--给开发者使用的,类似connection元素。即该连接不仅仅只读-->    
  147. <developerConnection>     
  148. scm:svn:http://svn.baidu.com/banseon/maven/banseon/dao-trunk
  149. </developerConnection>    
  150. <!--当前代码的标签,在开发阶段默认为HEAD-->    
  151. <tag/>           
  152. <!--指向项目的可浏览SCM库(例如ViewVC或者Fisheye)的URL。-->     
  153. <url>http://svn.baidu.com/banseon</url>     
  154. </scm>     
  155. <!--描述项目所属组织的各种属性。Maven产生的文档用-->     
  156. <organization>     
  157. <!--组织的全名-->    
  158. <name>demo</name>     
  159. <!--组织主页的URL-->    
  160. <url>http://www.baidu.com/banseon</url>     
  161. </organization>    
  162. <!--构建项目需要的信息-->    
  163. <build>    
  164. <!--该元素设置了项目源码目录,当构建项目的时候,构建系统会编译目录里的源码。该路径是相对于pom.xml的相对路径。-->    
  165. <sourceDirectory/>    
  166. <!--该元素设置了项目脚本源码目录,该目录和源码目录不同:绝大多数情况下,该目录下的内容 会被拷贝到输出目录(因为脚本是被解释的,而不是被编译的)。-->    
  167. <scriptSourceDirectory/>    
  168. <!--该元素设置了项目单元测试使用的源码目录,当测试项目的时候,构建系统会编译目录里的源码。该路径是相对于pom.xml的相对路径。-->    
  169. <testSourceDirectory/>    
  170. <!--被编译过的应用程序class文件存放的目录。-->    
  171. <outputDirectory/>    
  172. <!--被编译过的测试class文件存放的目录。-->    
  173. <testOutputDirectory/>    
  174. <!--使用来自该项目的一系列构建扩展-->    
  175. <extensions>    
  176. <!--描述使用到的构建扩展。-->    
  177. <extension>    
  178. <!--构建扩展的groupId-->    
  179. <groupId/>    
  180. <!--构建扩展的artifactId-->    
  181. <artifactId/>    
  182. <!--构建扩展的版本-->    
  183. <version/>    
  184. </extension>    
  185. </extensions>    
  186. <!--当项目没有规定目标(Maven2 叫做阶段)时的默认值-->    
  187. <defaultGoal/>    
  188. <!--这个元素描述了项目相关的所有资源路径列表,例如和项目相关的属性文件,这些资源被包含在最终的打包文件里。-->    
  189. <resources>    
  190. <!--这个元素描述了项目相关或测试相关的所有资源路径-->    
  191. <resource>    
  192. <!-- 描述了资源的目标路径。该路径相对target/classes目录(例如${project.build.outputDirectory})。举个例 子,如果你想资源在特定的包里(org.apache.maven.messages),你就必须该元素设置为org/apache/maven /messages。然而,如果你只是想把资源放到源码目录结构里,就不需要该配置。-->    
  193. <targetPath/>    
  194. <!--是否使用参数值代替参数名。参数值取自properties元素或者文件里配置的属性,文件在filters元素里列出。-->    
  195. <filtering/>    
  196. <!--描述存放资源的目录,该路径相对POM路径-->    
  197. <directory/>    
  198. <!--包含的模式列表,例如**/*.xml.-->    
  199. <includes/>    
  200. <!--排除的模式列表,例如**/*.xml-->    
  201. <excludes/>    
  202. </resource>    
  203. </resources>    
  204. <!--这个元素描述了单元测试相关的所有资源路径,例如和单元测试相关的属性文件。-->    
  205. <testResources>    
  206. <!--这个元素描述了测试相关的所有资源路径,参见build/resources/resource元素的说明-->    
  207. <testResource>    
  208. <targetPath/><filtering/><directory/><includes/><excludes/>    
  209. </testResource>    
  210. </testResources>    
  211. <!--构建产生的所有文件存放的目录-->    
  212. <directory/>    
  213. <!--产生的构件的文件名,默认值是${artifactId}-${version}。-->    
  214. <finalName/>    
  215. <!--当filtering开关打开时,使用到的过滤器属性文件列表-->    
  216. <filters/>    
  217. <!--子项目可以引用的默认插件信息。该插件配置项直到被引用时才会被解析或绑定到生命周期。给定插件的任何本地配置都会覆盖这里的配置-->    
  218. <pluginManagement>    
  219. <!--使用的插件列表 。-->    
  220. <plugins>    
  221. <!--plugin元素包含描述插件所需要的信息。-->    
  222. <plugin>    
  223. <!--插件在仓库里的group ID-->    
  224. <groupId/>    
  225. <!--插件在仓库里的artifact ID-->    
  226. <artifactId/>    
  227. <!--被使用的插件的版本(或版本范围)-->    
  228. <version/>    
  229. <!--是否从该插件下载Maven扩展(例如打包和类型处理器),由于性能原因,只有在真需要下载时,该元素才被设置成enabled。-->    
  230. <extensions/>    
  231. <!--在构建生命周期中执行一组目标的配置。每个目标可能有不同的配置。-->    
  232. <executions>    
  233. <!--execution元素包含了插件执行需要的信息-->    
  234. <execution>    
  235. <!--执行目标的标识符,用于标识构建过程中的目标,或者匹配继承过程中需要合并的执行目标-->    
  236. <id/>    
  237. <!--绑定了目标的构建生命周期阶段,如果省略,目标会被绑定到源数据里配置的默认阶段-->    
  238. <phase/>    
  239. <!--配置的执行目标-->    
  240. <goals/>    
  241. <!--配置是否被传播到子POM-->    
  242. <inherited/>    
  243. <!--作为DOM对象的配置-->    
  244. <configuration/>    
  245. </execution>    
  246. </executions>    
  247. <!--项目引入插件所需要的额外依赖-->    
  248. <dependencies>    
  249. <!--参见dependencies/dependency元素-->    
  250. <dependency>    
  251. ......
  252. </dependency>    
  253. </dependencies>         
  254. <!--任何配置是否被传播到子项目-->    
  255. <inherited/>    
  256. <!--作为DOM对象的配置-->    
  257. <configuration/>    
  258. </plugin>    
  259. </plugins>    
  260. </pluginManagement>    
  261. <!--使用的插件列表-->    
  262. <plugins>    
  263. <!--参见build/pluginManagement/plugins/plugin元素-->    
  264. <plugin>    
  265. <groupId/><artifactId/><version/><extensions/>    
  266. <executions>    
  267. <execution>    
  268. <id/><phase/><goals/><inherited/><configuration/>    
  269. </execution>    
  270. </executions>    
  271. <dependencies>    
  272. <!--参见dependencies/dependency元素-->    
  273. <dependency>    
  274. ......
  275. </dependency>    
  276. </dependencies>    
  277. <goals/><inherited/><configuration/>    
  278. </plugin>    
  279. </plugins>    
  280. </build>    
  281. <!--在列的项目构建profile,如果被激活,会修改构建处理-->    
  282. <profiles>    
  283. <!--根据环境参数或命令行参数激活某个构建处理-->    
  284. <profile>    
  285. <!--构建配置的唯一标识符。即用于命令行激活,也用于在继承时合并具有相同标识符的profile。-->    
  286. <id/>    
  287. <!--自动触发profile的条件逻辑。Activation是profile的开启钥匙。profile的力量来自于它
  288. 能够在某些特定的环境中自动使用某些特定的值;这些环境通过activation元素指定。activation元素并不是激活profile的唯一方式。-->    
  289. <activation>    
  290. <!--profile默认是否激活的标志-->    
  291. <activeByDefault/>    
  292. <!--当匹配的jdk被检测到,profile被激活。例如,1.4激活JDK1.4,1.4.0_2,而!1.4激活所有版本不是以1.4开头的JDK。-->    
  293. <jdk/>    
  294. <!--当匹配的操作系统属性被检测到,profile被激活。os元素可以定义一些操作系统相关的属性。-->    
  295. <os>    
  296. <!--激活profile的操作系统的名字-->    
  297. <name>Windows XP</name>    
  298. <!--激活profile的操作系统所属家族(如 'windows')-->    
  299. <family>Windows</family>    
  300. <!--激活profile的操作系统体系结构 -->    
  301. <arch>x86</arch>    
  302. <!--激活profile的操作系统版本-->    
  303. <version>5.1.2600</version>    
  304. </os>    
  305. <!--如果Maven检测到某一个属性(其值可以在POM中通过${名称}引用),其拥有对应的名称和值,Profile就会被激活。如果值
  306. 字段是空的,那么存在属性名称字段就会激活profile,否则按区分大小写方式匹配属性值字段-->    
  307. <property>    
  308. <!--激活profile的属性的名称-->    
  309. <name>mavenVersion</name>    
  310. <!--激活profile的属性的值-->    
  311. <value>2.0.3</value>    
  312. </property>    
  313. <!--提供一个文件名,通过检测该文件的存在或不存在来激活profile。missing检查文件是否存在,如果不存在则激活
  314. profile。另一方面,exists则会检查文件是否存在,如果存在则激活profile。-->    
  315. <file>    
  316. <!--如果指定的文件存在,则激活profile。-->    
  317. <exists>/usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/</exists>    
  318. <!--如果指定的文件不存在,则激活profile。-->    
  319. <missing>/usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/</missing>    
  320. </file>    
  321. </activation>    
  322. <!--构建项目所需要的信息。参见build元素-->    
  323. <build>    
  324. <defaultGoal/>    
  325. <resources>    
  326. <resource>    
  327. <targetPath/><filtering/><directory/><includes/><excludes/>    
  328. </resource>    
  329. </resources>    
  330. <testResources>    
  331. <testResource>    
  332. <targetPath/><filtering/><directory/><includes/><excludes/>    
  333. </testResource>    
  334. </testResources>    
  335. <directory/><finalName/><filters/>    
  336. <pluginManagement>    
  337. <plugins>    
  338. <!--参见build/pluginManagement/plugins/plugin元素-->    
  339. <plugin>    
  340. <groupId/><artifactId/><version/><extensions/>    
  341. <executions>    
  342. <execution>    
  343. <id/><phase/><goals/><inherited/><configuration/>    
  344. </execution>    
  345. </executions>    
  346. <dependencies>    
  347. <!--参见dependencies/dependency元素-->    
  348. <dependency>    
  349. ......
  350. </dependency>    
  351. </dependencies>    
  352. <goals/><inherited/><configuration/>    
  353. </plugin>    
  354. </plugins>    
  355. </pluginManagement>    
  356. <plugins>    
  357. <!--参见build/pluginManagement/plugins/plugin元素-->    
  358. <plugin>    
  359. <groupId/><artifactId/><version/><extensions/>    
  360. <executions>    
  361. <execution>    
  362. <id/><phase/><goals/><inherited/><configuration/>    
  363. </execution>    
  364. </executions>    
  365. <dependencies>    
  366. <!--参见dependencies/dependency元素-->    
  367. <dependency>    
  368. ......
  369. </dependency>    
  370. </dependencies>    
  371. <goals/><inherited/><configuration/>    
  372. </plugin>    
  373. </plugins>    
  374. </build>    
  375. <!--模块(有时称作子项目) 被构建成项目的一部分。列出的每个模块元素是指向该模块的目录的相对路径-->    
  376. <modules/>    
  377. <!--发现依赖和扩展的远程仓库列表。-->    
  378. <repositories>    
  379. <!--参见repositories/repository元素-->    
  380. <repository>    
  381. <releases>    
  382. <enabled/><updatePolicy/><checksumPolicy/>    
  383. </releases>    
  384. <snapshots>    
  385. <enabled/><updatePolicy/><checksumPolicy/>    
  386. </snapshots>    
  387. <id/><name/><url/><layout/>    
  388. </repository>    
  389. </repositories>    
  390. <!--发现插件的远程仓库列表,这些插件用于构建和报表-->    
  391. <pluginRepositories>    
  392. <!--包含需要连接到远程插件仓库的信息.参见repositories/repository元素-->        
  393. <pluginRepository>    
  394. <releases>    
  395. <enabled/><updatePolicy/><checksumPolicy/>    
  396. </releases>    
  397. <snapshots>    
  398. <enabled/><updatePolicy/><checksumPolicy/>    
  399. </snapshots>    
  400. <id/><name/><url/><layout/>    
  401. </pluginRepository>    
  402. </pluginRepositories>    
  403. <!--该元素描述了项目相关的所有依赖。 这些依赖组成了项目构建过程中的一个个环节。它们自动从项目定义的仓库中下载。要获取更多信息,请看项目依赖机制。-->    
  404. <dependencies>    
  405. <!--参见dependencies/dependency元素-->    
  406. <dependency>    
  407. ......
  408. </dependency>    
  409. </dependencies>    
  410. <!--不赞成使用. 现在Maven忽略该元素.-->    
  411. <reports/>       
  412. <!--该元素包括使用报表插件产生报表的规范。当用户执行“mvn site”,这些报表就会运行。 在页面导航栏能看到所有报表的链接。参见reporting元素-->    
  413. <reporting>    
  414. ......
  415. </reporting>    
  416. <!--参见dependencyManagement元素-->    
  417. <dependencyManagement>    
  418. <dependencies>    
  419. <!--参见dependencies/dependency元素-->    
  420. <dependency>    
  421. ......
  422. </dependency>    
  423. </dependencies>    
  424. </dependencyManagement>    
  425. <!--参见distributionManagement元素-->    
  426. <distributionManagement>    
  427. ......
  428. </distributionManagement>    
  429. <!--参见properties元素-->    
  430. <properties/>    
  431. </profile>    
  432. </profiles>    
  433. <!--模块(有时称作子项目) 被构建成项目的一部分。列出的每个模块元素是指向该模块的目录的相对路径-->    
  434. <modules/>    
  435. <!--发现依赖和扩展的远程仓库列表。-->     
  436. <repositories>     
  437. <!--包含需要连接到远程仓库的信息-->    
  438. <repository>    
  439. <!--如何处理远程仓库里发布版本的下载-->    
  440. <releases>    
  441. <!--true或者false表示该仓库是否为下载某种类型构件(发布版,快照版)开启。 -->    
  442. <enabled/>    
  443. <!--该元素指定更新发生的频率。Maven会比较本地POM和远程POM的时间戳。这里的选项是:always(一直),daily(默认,每日),interval:X(这里X是以分钟为单位的时间间隔),或者never(从不)。-->    
  444. <updatePolicy/>    
  445. <!--当Maven验证构件校验文件失败时该怎么做:ignore(忽略),fail(失败),或者warn(警告)。-->    
  446. <checksumPolicy/>    
  447. </releases>    
  448. <!-- 如何处理远程仓库里快照版本的下载。有了releases和snapshots这两组配置,POM就可以在每个单独的仓库中,为每种类型的构件采取不同的 策略。例如,可能有人会决定只为开发目的开启对快照版本下载的支持。参见repositories/repository/releases元素 -->    
  449. <snapshots>    
  450. <enabled/><updatePolicy/><checksumPolicy/>    
  451. </snapshots>    
  452. <!--远程仓库唯一标识符。可以用来匹配在settings.xml文件里配置的远程仓库-->    
  453. <id>banseon-repository-proxy</id>     
  454. <!--远程仓库名称-->    
  455. <name>banseon-repository-proxy</name>     
  456. <!--远程仓库URL,按protocol://hostname/path形式-->    
  457. <url>http://192.168.1.169:9999/repository/</url>     
  458. <!-- 用于定位和排序构件的仓库布局类型-可以是default(默认)或者legacy(遗留)。Maven 2为其仓库提供了一个默认的布局;然 而,Maven 1.x有一种不同的布局。我们可以使用该元素指定布局是default(默认)还是legacy(遗留)。-->    
  459. <layout>default</layout>               
  460. </repository>     
  461. </repositories>    
  462. <!--发现插件的远程仓库列表,这些插件用于构建和报表-->    
  463. <pluginRepositories>    
  464. <!--包含需要连接到远程插件仓库的信息.参见repositories/repository元素-->    
  465. <pluginRepository>    
  466. ......
  467. </pluginRepository>    
  468. </pluginRepositories>    
  469. <!--该元素描述了项目相关的所有依赖。 这些依赖组成了项目构建过程中的一个个环节。它们自动从项目定义的仓库中下载。要获取更多信息,请看项目依赖机制。-->     
  470. <dependencies>     
  471. <dependency>    
  472. <!--依赖的group ID-->    
  473. <groupId>org.apache.maven</groupId>     
  474. <!--依赖的artifact ID-->    
  475. <artifactId>maven-artifact</artifactId>     
  476. <!--依赖的版本号。 在Maven 2里, 也可以配置成版本号的范围。-->    
  477. <version>3.8.1</version>     
  478. <!-- 依赖类型,默认类型是jar。它通常表示依赖的文件的扩展名,但也有例外。一个类型可以被映射成另外一个扩展名或分类器。类型经常和使用的打包方式对应, 尽管这也有例外。一些类型的例子:jar,war,ejb-client和test-jar。如果设置extensions为 true,就可以在 plugin里定义新的类型。所以前面的类型的例子不完整。-->    
  479. <type>jar</type>    
  480. <!-- 依赖的分类器。分类器可以区分属于同一个POM,但不同构建方式的构件。分类器名被附加到文件名的版本号后面。例如,如果你想要构建两个单独的构件成 JAR,一个使用Java 1.4编译器,另一个使用Java 6编译器,你就可以使用分类器来生成两个单独的JAR构件。-->    
  481. <classifier></classifier>    
  482. <!--依赖范围。在项目发布过程中,帮助决定哪些构件被包括进来。欲知详情请参考依赖机制。
  483. - compile :默认范围,用于编译
  484. - provided:类似于编译,但支持你期待jdk或者容器提供,类似于classpath
  485. - runtime: 在执行时需要使用
  486. - test:    用于test任务时使用
  487. - system: 需要外在提供相应的元素。通过systemPath来取得
  488. - systemPath: 仅用于范围为system。提供相应的路径
  489. - optional:   当项目自身被依赖时,标注依赖是否传递。用于连续依赖时使用-->     
  490. <scope>test</scope>       
  491. <!--仅供system范围使用。注意,不鼓励使用这个元素,并且在新的版本中该元素可能被覆盖掉。该元素为依赖规定了文件系统上的路径。需要绝对路径而不是相对路径。推荐使用属性匹配绝对路径,例如${java.home}。-->    
  492. <systemPath></systemPath>     
  493. <!--当计算传递依赖时, 从依赖构件列表里,列出被排除的依赖构件集。即告诉maven你只依赖指定的项目,不依赖项目的依赖。此元素主要用于解决版本冲突问题-->    
  494. <exclusions>    
  495. <exclusion>     
  496. <artifactId>spring-core</artifactId>     
  497. <groupId>org.springframework</groupId>     
  498. </exclusion>     
  499. </exclusions>       
  500. <!--可选依赖,如果你在项目B中把C依赖声明为可选,你就需要在依赖于B的项目(例如项目A)中显式的引用对C的依赖。可选依赖阻断依赖的传递性。-->     
  501. <optional>true</optional>    
  502. </dependency>    
  503. </dependencies>    
  504. <!--不赞成使用. 现在Maven忽略该元素.-->    
  505. <reports></reports>    
  506. <!--该元素描述使用报表插件产生报表的规范。当用户执行“mvn site”,这些报表就会运行。 在页面导航栏能看到所有报表的链接。-->    
  507. <reporting>    
  508. <!--true,则,网站不包括默认的报表。这包括“项目信息”菜单中的报表。-->    
  509. <excludeDefaults/>    
  510. <!--所有产生的报表存放到哪里。默认值是${project.build.directory}/site。-->    
  511. <outputDirectory/>    
  512. <!--使用的报表插件和他们的配置。-->    
  513. <plugins>    
  514. <!--plugin元素包含描述报表插件需要的信息-->    
  515. <plugin>    
  516. <!--报表插件在仓库里的group ID-->    
  517. <groupId/>    
  518. <!--报表插件在仓库里的artifact ID-->    
  519. <artifactId/>    
  520. <!--被使用的报表插件的版本(或版本范围)-->    
  521. <version/>    
  522. <!--任何配置是否被传播到子项目-->    
  523. <inherited/>    
  524. <!--报表插件的配置-->    
  525. <configuration/>    
  526. <!--一组报表的多重规范,每个规范可能有不同的配置。一个规范(报表集)对应一个执行目标 。例如,有1,2,3,4,5,6,7,8,9个报表。1,2,5构成A报表集,对应一个执行目标。2,5,8构成B报表集,对应另一个执行目标-->    
  527. <reportSets>    
  528. <!--表示报表的一个集合,以及产生该集合的配置-->    
  529. <reportSet>    
  530. <!--报表集合的唯一标识符,POM继承时用到-->    
  531. <id/>    
  532. <!--产生报表集合时,被使用的报表的配置-->    
  533. <configuration/>    
  534. <!--配置是否被继承到子POMs-->    
  535. <inherited/>    
  536. <!--这个集合里使用到哪些报表-->    
  537. <reports/>    
  538. </reportSet>    
  539. </reportSets>    
  540. </plugin>    
  541. </plugins>    
  542. </reporting>    
  543. <!-- 继承自该项目的所有子项目的默认依赖信息。这部分的依赖信息不会被立即解析,而是当子项目声明一个依赖(必须描述group ID和 artifact ID信息),如果group ID和artifact ID以外的一些信息没有描述,则通过group ID和artifact ID 匹配到这里的依赖,并使用这里的依赖信息。-->    
  544. <dependencyManagement>    
  545. <dependencies>    
  546. <!--参见dependencies/dependency元素-->    
  547. <dependency>    
  548. ......
  549. </dependency>    
  550. </dependencies>    
  551. </dependencyManagement>       
  552. <!--项目分发信息,在执行mvn deploy后表示要发布的位置。有了这些信息就可以把网站部署到远程服务器或者把构件部署到远程仓库。-->     
  553. <distributionManagement>    
  554. <!--部署项目产生的构件到远程仓库需要的信息-->    
  555. <repository>    
  556. <!--是分配给快照一个唯一的版本号(由时间戳和构建流水号)?还是每次都使用相同的版本号?参见repositories/repository元素-->    
  557. <uniqueVersion/>    
  558. <id>banseon-maven2</id>     
  559. <name>banseon maven2</name>     
  560. <url>file://${basedir}/target/deploy</url>     
  561. <layout/>    
  562. </repository>    
  563. <!--构件的快照部署到哪里?如果没有配置该元素,默认部署到repository元素配置的仓库,参见distributionManagement/repository元素-->     
  564. <snapshotRepository>    
  565. <uniqueVersion/>    
  566. <id>banseon-maven2</id>    
  567. <name>Banseon-maven2 Snapshot Repository</name>    
  568. <url>scp://svn.baidu.com/banseon:/usr/local/maven-snapshot</url>     
  569. <layout/>    
  570. </snapshotRepository>    
  571. <!--部署项目的网站需要的信息-->     
  572. <site>    
  573. <!--部署位置的唯一标识符,用来匹配站点和settings.xml文件里的配置-->     
  574. <id>banseon-site</id>     
  575. <!--部署位置的名称-->    
  576. <name>business api website</name>     
  577. <!--部署位置的URL,按protocol://hostname/path形式-->    
  578. <url>     
  579. scp://svn.baidu.com/banseon:/var/www/localhost/banseon-web
  580. </url>     
  581. </site>    
  582. <!--项目下载页面的URL。如果没有该元素,用户应该参考主页。使用该元素的原因是:帮助定位那些不在仓库里的构件(由于license限制)。-->    
  583. <downloadUrl/>    
  584. <!--如果构件有了新的group ID和artifact ID(构件移到了新的位置),这里列出构件的重定位信息。-->    
  585. <relocation>    
  586. <!--构件新的group ID-->    
  587. <groupId/>    
  588. <!--构件新的artifact ID-->    
  589. <artifactId/>    
  590. <!--构件新的版本号-->    
  591. <version/>    
  592. <!--显示给用户的,关于移动的额外信息,例如原因。-->    
  593. <message/>    
  594. </relocation>    
  595. <!-- 给出该构件在远程仓库的状态。不得在本地项目中设置该元素,因为这是工具自动更新的。有效的值有:none(默认),converted(仓库管理员从 Maven 1 POM转换过来),partner(直接从伙伴Maven 2仓库同步过来),deployed(从Maven 2实例部 署),verified(被核实时正确的和最终的)。-->    
  596. <status/>           
  597. </distributionManagement>    
  598. <!--以值替代名称,Properties可以在整个POM中使用,也可以作为触发条件(见settings.xml配置文件里activation元素的说明)。格式是<name>value</name>。-->    
  599. <properties/>    
  600. </project>  </span>  

相关文章:

DataRow的序列化问题

来源&#xff1a;CSDN 作者&#xff1a;kroll 在.net里&#xff0c;DataRow类型的对象是不支持序列化的&#xff0c;那么如果在一个需要序列化的对象中含有DataRow类型的字段该怎么办呢&#xff1f;呵呵&#xff0c;幸好Datatable是支持序列化的。因此&#xff0c;我们可以自定…

mass Framework event模块 v4

event.js // // 事件模块&#xff08;包括伪事件对象&#xff0c;事件绑定与事件代理&#xff09; // $.define("event",document.dispatchEvent ? "node" : "node,event_fix",function(){// $.log("已加载target模块")var rhoverH…

美国 AI 博士:什么都不会怎么学 Python?

我见过市面上很多的 Python 讲解教程和书籍&#xff0c;他们大都这样讲 Python 的&#xff1a;先从 Python 的发展历史开始&#xff0c;介绍 Python 的基本语法规则&#xff0c;Python 的 list, dict, tuple 等数据结构&#xff0c;然后再介绍字符串处理和正则表达式&#xff0…

puppet 初识

【puppet初识】学习目录 领导说saltstack太慢 机器量一旦上来&#xff0c;saltstack就力不从心&#xff0c;所以要将saltstack转向puppet。【安装背景】系统centos 6.5软件地址:http://downloads.puppetlabs.com/puppet/master: 192.168.100.10agent: 192.168.100.13因为puppe…

ColorMatrix 彩色矩阵

选择自 hbzxf 的 Blog 首先对装配脑袋给出上两片文章的友好回复&#xff0c;还有网友Fisherman一起探讨ColorMatrix话题表示感谢&#xff01;ColorMatrix (彩色矩阵) 类位于System.Drawing.Imaging命名空间 先看看下面的代码 ColorMatrix cm newColorMatrix(newfloat[][]{ n…

​一个参数一张Excel表,玩转Pandas的read_excel()表格读取

作者 | 黄伟呢来源 | 数据分析与统计学之美我觉得很有必要讲述这个文章&#xff0c;进行数据处理的第一步就是Python数据读取。但是你可能没想到&#xff0c;在进行数据读取的同时&#xff0c;我们其实可以配合相关参数做很多事儿&#xff0c;这对于后续的数据处理都是极其有帮…

Android 设计模式:(三)装饰者模式 —— 装饰对象

*利用组合&#xff08;composition&#xff09;和委托&#xff08;delegation&#xff09;可以在运行时实现继承行为的效果&#xff0c;动态地给对象加上新的行为。*利用继承扩展子类的行为&#xff0c;是在编译时静态决定的&#xff1b;利用组合的做法&#xff0c;可以在运行时…

润乾报表永久授权说明

永久授权是什么&#xff1f; 永久授权是运行润乾报表的带有机器特征码的没有时间限制的正式授权文件 2 机器特征码是什么&#xff1f; 机器特征码是为了制作永久授权&#xff0c;由润乾公司提供程序从用户的服务器上获取硬件和操作系统信息&#xff0c;生成的一个数字串&#x…

维度爆炸?Python实现数据压缩如此简单

作者 | 萝卜来源 | 早起Python&#xff08;ID: zaoqi-python&#xff09;用Python基于主成分分析常见的三个应用场景中&#xff0c;其中有一个是「数据描述」&#xff0c;以描述产品情况为例&#xff0c;比如著名的波士顿矩阵&#xff0c;子公司业务发展状况&#xff0c;区域投…

深入剖析C#的多态

作者: 天雨一、什么是多态 面向对象程序设计中的另外一个重要概念是多态性。在运行时&#xff0c;可以通过指向基类的指针&#xff0c;来调用实现派生类中的方法。可以把一组对象放到一个数组中&#xff0c;然后调用它们的方法&#xff0c;在这种场合下&#xff0c;多态性作用…

/usr/local/lib/libz.a: could not read symbols: Bad value(64 位 Linux)

/usr/bin/ld: /usr/local/lib/libz.a(crc32.o): relocation R_X86_64_32 against a local symbol can not be used when making a shared object; recompile with -fPIC /usr/local/lib/libz.a: could not read symbols: Bad value 一般是64 位 电脑才会出现。 解决方法如下&am…

关于BIO | NIO | AIO的讨论

关于BIO | NIO | AIO的讨论一直存在&#xff0c;有时候也很容易让人混淆&#xff0c;就我的理解&#xff0c;给出一个解释&#xff1a; BIO | NIO | AIO&#xff0c;本身的描述都是在Java语言的基础上的。而描述IO&#xff0c;我们需要从两个层面&#xff1a; 编程语言实现原理…

NYOJ-49 开心的小明

开心的小明 时间限制&#xff1a;1000 ms | 内存限制&#xff1a;65535 KB难度&#xff1a;4描述小明今天很开心&#xff0c;家里购置的新房就要领钥匙了&#xff0c;新房里有一间他自己专用的很宽敞的房间。更让他高兴的是&#xff0c;妈妈昨天对他说&#xff1a;“你的房间…

两个硬盘和文件相关的小技巧 (C#)

取系统的硬盘分区的盘符&#xff0c;用API函数&#xff1a;GetDriveType [DllImport("kernel32.dll", EntryPoint"GetDriveType")] public static extern int GetDriveType (string nDrive); 调用&#xff1a;string [] dirs Environment.GetLogicalDri…

从数百个Excel中查找数据,一分钟用Python搞定

作者 | 陈熹来源 | 早起Python今天分享一个真实的办公自动化需求&#xff0c;大家一定要仔细阅读需求说明&#xff0c;在理解需求之后即可体会Python的强大。需求说明首先我们来看下今天的需求&#xff0c;有一份档案记录总表的Excel工作簿&#xff0c; 每天会根据当天日期建立…

namenode如何存储复本?

2019独角兽企业重金招聘Python工程师标准>>> namenode如何选择在哪个datanode存储复本&#xff1f;这里需要对可靠性&#xff0c;写入带宽和读取带宽进行权衡。例如&#xff0c;把所有复本都存储在一个节点损失的写入带宽最小&#xff0c;因为复制管线都是在同一节点…

EBS-使用 fnd_user_pkg API 创建用户,添加职责,修改用户

比如有一个外围支持系统&#xff0c;用户需要在外围系统登录之后点个link就可以登录到Oracle ERP系统中&#xff0c;那么我们需要先把外围系统的用户创建在Oracle ERP中&#xff0c;并且分配职责给他。 DECLARE a BOOLEAN; BEGIN---------------------------------------------…

万字长文总结机器学习的模型评估与调参 | 附代码下载

作者 | Sebastian Raschka翻译&整理 | Sam来源 | SAMshare目录一、认识管道流1.1 数据导入1.2 使用管道创建工作流二、K折交叉验证2.1 K折交叉验证原理2.2 K折交叉验证实现三、曲线调参3.1 模型准确度3.2 绘制学习曲线得到样本数与准确率的关系3.3 绘制验证曲线得到超参和准…

[百万级]通用存储过程.分页存储过程

/* 名称:spAll_ReturnRows 输入: 输出: 调用: EXEC spAll_ReturnRows SELECT * FROM 表名, 页号, 返回记录数, 主键, 排序字段 spAll_ReturnRows SELECT * FROM all_Categories,2,10,[ID],[ID] 说明:[百万级]通用存储过程.分页存储过程..返回指定返回条数、指定页数的记录 …

Unsupported major.minor version (jdk版本错误)解决方案

2019独角兽企业重金招聘Python工程师标准>>> 如果你遇到了 Unsupported major.minor version &#xff0c;请认真看一下&#xff0c;说不定会有帮助。 我花两个小时总结的经验&#xff0c;你可能10分钟就得到了。 ^**^ 一、错误现象&#xff1a; 当改变了jdk版本时…

The key of C# 学习笔记I-II

作者 &#xff1a;Kemins booootLog http://blog.csdn.net/keminlau/ Sunday, October 3, 2004 微软提出的CLS(Common Language Specification, 通用语言标准)对能被用来编写dotNET程序的语言的最小功能集做出了规定。 就拿C#来说&#xff0c;它是目前程序设计语言“以效率换安…

分布式平台下的HS(High-Security) --Apache Shiro API(介绍)

在尝试保护你的应用时&#xff0c;你是否有过挫败感?是否觉得现有的Java安全解决方案难以使用&#xff0c;只会让你更糊涂?本文介绍的Apache Shiro&#xff0c;是一个不同寻常的Java安全框架&#xff0c;为保护应用提供了简单而强大的方法。本文还解释了Apache Shiro的项目目…

豪赌 ARM 梦碎:63 岁孙正义的「花甲历险记」

来源 | HyperAI超神经这几天&#xff0c;传出 NVIDIA 将以 400 亿 英镑的价格收购 ARM 的消息&#xff0c;不少媒体在争相报道收购进度的同时&#xff0c;也将整起交易的幕后推手 —— 孙正义&#xff0c;放到了聚光灯下。软银 CEO&#xff0c;传奇投资人&#xff0c;冒险家&am…

Java 集合 — HashMap

HashMap 无序&#xff08;每次resize的时候都会变&#xff09;非线程安全key和value都看可以为null使用数组和链表实现查找元素的时候速度快几个重要属性&#xff1a; loadFactor&#xff1a;用来计算thresholdthreshold&#xff1a;决定map是否需要扩容&#xff0c;threshold …

赠书 | 人工智能识万物:卷积神经网络的前世今生

来源 |《Python人工智能开发从入门到精通》作者 | 杨柳、郭坦、鲁银芝责编 | 晋兆雨深度学习在技术与应用上的突破引发了第三次人工智能浪潮&#xff0c;获得了空前成功。在前述章节的基础上&#xff0c;本章将主要介绍训练卷积神经网络和深度神经网络的重要方法与技巧&#xf…

通过WMI获得硬盘和CPU的物理序列号(VB.net)

作者&#xff1a;iwebsms获得硬盘序列号Dim cmicWmi As New System.Management.ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive")Dim Uint32 As UInt32For Each cmicWmiObj As ManagementObject In cmicWmi.GetUint32 cmicWmiObj("signature")…

[转] Zend studio中开发常用

转载自: http://www.cnblogs.com/iphper/archive/2012/03/21/2409397.html 、快捷键设置 在zendstudio中开发的过程中&#xff0c;我们应专注与代码的逻辑中&#xff0c;而不是把一大半的时间都浪费在编辑器的操作以及鼠标的点击中&#xff0c;经常使用快捷键进行操作会达到事半…

程序员新手 0年份等级 指导(一) 开发人员IT架构总览

程序员新手 0年份等级 指导&#xff08;一&#xff09; 开发人员IT架构总览 程序员新手 0年份等级 指导&#xff08;一&#xff09; 开发人员相关IT架构总览之职能分解 开发人员IT架构总览一、职能分解 软件项目的主要组成大体上按照一个项目的生命周期流程分为&#xff1a; 需…

磁盘配额的wmi版本(C#)

作者&#xff1a;iwebsmsusing System;using System.Management;namespace DiskQuota{/// <summary>/// Class1 的摘要说明。/// </summary>class Class1{/// <summary>/// 应用程序的主入口点。/// </summary>[STAThread]static void Main(string[] a…

Smarty的配置与高级缓存技术

前言 Smarty 是一个出色的PHP模板引擎&#xff0c;它分离了逻辑代码和user interface。 学习和使用Smarty&#xff0c;没有应用到它的缓存技术是一个很大的损失&#xff0c;它可以将用户最终看到的HMTL文件缓存成一个静态的HTML页&#xff0c;当设定Smarty的cache属性为true时&…