maven pom.xml配置详解

0001 <project xmlns="http://maven.apache.org/POM/4.0.0"
0002 
0004 
0006 
0007<!-- 父项目的坐标。如果项目中没有规定某个元素的值,那么父项目中的对应值即为项目的默认值。 坐标包括group ID,artifact ID和 version。 -->
0008 
0009 <parent>
0010 
0011<!-- 被继承的父项目的构件标识符 -->
0012 
0013 <artifactId />
0014 
0015<!-- 被继承的父项目的全球唯一标识符 -->
0016 
0017 <groupId />
0018 
0019<!-- 被继承的父项目的版本 -->
0020 
0021 <version />
0022 
0023<!-- 父项目的pom.xml文件的相对路径。相对路径允许你选择一个不同的路径。默认值是../pom.xml。Maven首先在构建当前项目的地方寻找父项目的pom,其次在文件系统的这个位置(relativePath位置),然后在本地仓库,最后在远程仓库寻找父项目的pom。 -->
0024 
0025 <relativePath />
0026 
0027 </parent>
0028 
0029<!-- 声明项目描述符遵循哪一个POM模型版本。模型本身的版本很少改变,虽然如此,但它仍然是必不可少的,这是为了当Maven引入了新的特性或者其他模型变更的时候,确保稳定性。 -->
0030 
0031 <modelVersion> 4.0.0 </modelVersion>
0032 
0033<!-- 项目的全球唯一标识符,通常使用全限定的包名区分该项目和其他项目。并且构建时生成的路径也是由此生成, 如com.mycompany.app生成的相对路径为:/com/mycompany/app -->
0034 
0035 <groupId> asia.banseon </groupId>
0036 
0037<!-- 构件的标识符,它和group ID一起唯一标识一个构件。换句话说,你不能有两个不同的项目拥有同样的artifact ID和groupID;在某个特定的group ID下,artifact ID也必须是唯一的。构件是项目产生的或使用的一个东西,Maven为项目产生的构件包括:JARs,源码,二进制发布和WARs等。 -->
0038 
0039 <artifactId> banseon-maven2 </artifactId>
0040 
0041<!-- 项目产生的构件类型,例如jar、war、ear、pom。插件可以创建他们自己的构件类型,所以前面列的不是全部构件类型 -->
0042 
0043 <packaging> jar </packaging>
0044 
0045<!-- 项目当前版本,格式为:主版本.次版本.增量版本-限定版本号 -->
0046 
0047 <version> 1.0-SNAPSHOT </version>
0048 
0049<!-- 项目的名称, Maven产生的文档用 -->
0050 
0051 <name> banseon-maven </name>
0052 
0053<!-- 项目主页的URL, Maven产生的文档用 -->
0054 
0055 <urlhttp://www.baidu.com/banseon </url>
0056 
0057<!-- 项目的详细描述, Maven 产生的文档用。 当这个元素能够用HTML格式描述时(例如,CDATA中的文本会被解析器忽略,就可以包含HTML标签), 不鼓励使用纯文本描述。如果你需要修改产生的web站点的索引页面,你应该修改你自己的索引页文件,而不是调整这里的文档。 -->
0058 
0059 <description> A maven project to study maven. </description>
0060 
0061<!-- 描述了这个项目构建环境中的前提条件。 -->
0062 
0063 <prerequisites>
0064 
0065<!-- 构建该项目或使用该插件所需要的Maven的最低版本 -->
0066 
0067 <maven />
0068 
0069 </prerequisites>
0070 
0071<!-- 项目的问题管理系统(Bugzilla, Jira, Scarab,或任何你喜欢的问题管理系统)的名称和URL,本例为 jira -->
0072 
0073 <issueManagement>
0074 
0075<!-- 问题管理系统(例如jira)的名字, -->
0076 
0077 <system> jira </system>
0078 
0079<!-- 该项目使用的问题管理系统的URL -->
0080 
0081 <urlhttp://jira.baidu.com/banseon </url>
0082 
0083 </issueManagement>
0084 
0085<!-- 项目持续集成信息 -->
0086 
0087 <ciManagement>
0088 
0089<!-- 持续集成系统的名字,例如continuum -->
0090 
0091 <system />
0092 
0093<!-- 该项目使用的持续集成系统的URL(如果持续集成系统有web接口的话)。 -->
0094 
0095 <url />
0096 
0097<!-- 构建完成时,需要通知的开发者/用户的配置项。包括被通知者信息和通知条件(错误,失败,成功,警告) -->
0098 
0099 <notifiers>
0100 
0101<!-- 配置一种方式,当构建中断时,以该方式通知用户/开发者 -->
0102 
0103 <notifier>
0104 
0105<!-- 传送通知的途径 -->
0106 
0107 <type />
0108 
0109<!-- 发生错误时是否通知 -->
0110 
0111 <sendOnError />
0112 
0113<!-- 构建失败时是否通知 -->
0114 
0115 <sendOnFailure />
0116 
0117<!-- 构建成功时是否通知 -->
0118 
0119 <sendOnSuccess />
0120 
0121<!-- 发生警告时是否通知 -->
0122 
0123 <sendOnWarning />
0124 
0125<!-- 不赞成使用。通知发送到哪里 -->
0126 
0127 <address />
0128 
0129<!-- 扩展配置项 -->
0130 
0131 <configuration />
0132 
0133 </notifier>
0134 
0135 </notifiers>
0136 
0137 </ciManagement>
0138 
0139<!-- 项目创建年份,4位数字。当产生版权信息时需要使用这个值。 -->
0140 
0141 <inceptionYear />
0142 
0143<!-- 项目相关邮件列表信息 -->
0144 
0145 <mailingLists>
0146 
0147<!-- 该元素描述了项目相关的所有邮件列表。自动产生的网站引用这些信息。 -->
0148 
0149 <mailingList>
0150 
0151<!-- 邮件的名称 -->
0152 
0153 <name> Demo </name>
0154 
0155<!-- 发送邮件的地址或链接,如果是邮件地址,创建文档时,mailto: 链接会被自动创建 -->
0156 
0157 <post> banseon@126.com </post>
0158 
0159<!-- 订阅邮件的地址或链接,如果是邮件地址,创建文档时,mailto: 链接会被自动创建 -->
0160 
0161 <subscribe> banseon@126.com </subscribe>
0162 
0163<!-- 取消订阅邮件的地址或链接,如果是邮件地址,创建文档时,mailto: 链接会被自动创建 -->
0164 
0165 <unsubscribe> banseon@126.com </unsubscribe>
0166 
0167<!-- 你可以浏览邮件信息的URL -->
0168 
0169 <archive> http:/hi.baidu.com/banseon/demo/dev/ </archive>
0170 
0171 </mailingList>
0172 
0173 </mailingLists>
0174 
0175<!-- 项目开发者列表 -->
0176 
0177 <developers>
0178 
0179<!-- 某个项目开发者的信息 -->
0180 
0181 <developer>
0182 
0183<!-- SCM里项目开发者的唯一标识符 -->
0184 
0185 <id> HELLO WORLD </id>
0186 
0187<!-- 项目开发者的全名 -->
0188 
0189 <name> banseon </name>
0190 
0191<!-- 项目开发者的email -->
0192 
0193 <email> banseon@126.com </email>
0194 
0195<!-- 项目开发者的主页的URL -->
0196 
0197 <url />
0198 
0199<!-- 项目开发者在项目中扮演的角色,角色元素描述了各种角色 -->
0200 
0201 <roles>
0202 
0203 <role> Project Manager </role>
0204 
0205 <role> Architect </role>
0206 
0207 </roles>
0208 
0209<!-- 项目开发者所属组织 -->
0210 
0211 <organization> demo </organization>
0212 
0213<!-- 项目开发者所属组织的URL -->
0214 
0215 <organizationUrlhttp://hi.baidu.com/banseon </organizationUrl>
0216 
0217<!-- 项目开发者属性,如即时消息如何处理等 -->
0218 
0219 <properties>
0220 
0221 <dept> No </dept>
0222 
0223 </properties>
0224 
0225<!-- 项目开发者所在时区, -11到12范围内的整数。 -->
0226 
0227 <timezone> -5 </timezone>
0228 
0229 </developer>
0230 
0231 </developers>
0232 
0233<!-- 项目的其他贡献者列表 -->
0234 
0235 <contributors>
0236 
0237<!-- 项目的其他贡献者。参见developers/developer元素 -->
0238 
0239 <contributor>
0240 
0241 <name /><email /><url /><organization /><organizationUrl /><roles /><timezone /><properties/>
0242 
0243 </contributor>
0244 
0245 </contributors>
0246 
0247<!-- 该元素描述了项目所有License列表。 应该只列出该项目的license列表,不要列出依赖项目的 license列表。如果列出多个license,用户可以选择它们中的一个而不是接受所有license。 -->
0248 
0249 <licenses>
0250 
0251<!-- 描述了项目的license,用于生成项目的web站点的license页面,其他一些报表和validation也会用到该元素。 -->
0252 
0253 <license>
0254 
0255<!-- license用于法律上的名称 -->
0256 
0257 <name> Apache 2 </name>
0258 
0259<!-- 官方的license正文页面的URL -->
0260 
0262 
0263<!-- 项目分发的主要方式:
0264 
0265repo,可以从Maven库下载
0266 
0267manual, 用户必须手动下载和安装依赖 -->
0268 
0269 <distribution> repo </distribution>
0270 
0271<!-- 关于license的补充信息 -->
0272 
0273 <comments> A business-friendly OSS license </comments>
0274 
0275 </license>
0276 
0277 </licenses>
0278 
0279<!-- SCM(Source Control Management)标签允许你配置你的代码库,供Maven web站点和其它插件使用。 -->
0280 
0281 <scm>
0282 
0283<!-- SCM的URL,该URL描述了版本库和如何连接到版本库。欲知详情,请看SCMs提供的URL格式和列表。该连接只读。 -->
0284 
0285 <connection>
0286 
0288 
0289 </connection>
0290 
0291<!-- 给开发者使用的,类似connection元素。即该连接不仅仅只读 -->
0292 
0293 <developerConnection>
0294 
0296 
0297 </developerConnection>
0298 
0299<!-- 当前代码的标签,在开发阶段默认为HEAD -->
0300 
0301 <tag />
0302 
0303<!-- 指向项目的可浏览SCM库(例如ViewVC或者Fisheye)的URL。 -->
0304 
0305 <urlhttp://svn.baidu.com/banseon </url>
0306 
0307 </scm>
0308 
0309<!-- 描述项目所属组织的各种属性。Maven产生的文档用 -->
0310 
0311 <organization>
0312 
0313<!-- 组织的全名 -->
0314 
0315 <name> demo </name>
0316 
0317<!-- 组织主页的URL -->
0318 
0319 <urlhttp://www.baidu.com/banseon </url>
0320 
0321 </organization>
0322 
0323<!-- 构建项目需要的信息 -->
0324 
0325 <build>
0326 
0327<!-- 该元素设置了项目源码目录,当构建项目的时候,构建系统会编译目录里的源码。该路径是相对于pom.xml的相对路径。 -->
0328 
0329 <sourceDirectory />
0330 
0331<!-- 该元素设置了项目脚本源码目录,该目录和源码目录不同:绝大多数情况下,该目录下的内容 会被拷贝到输出目录(因为脚本是被解释的,而不是被编译的)。 -->
0332 
0333 <scriptSourceDirectory />
0334 
0335<!-- 该元素设置了项目单元测试使用的源码目录,当测试项目的时候,构建系统会编译目录里的源码。该路径是相对于pom.xml的相对路径。 -->
0336 
0337 <testSourceDirectory />
0338 
0339<!-- 被编译过的应用程序class文件存放的目录。 -->
0340 
0341 <outputDirectory />
0342 
0343<!-- 被编译过的测试class文件存放的目录。 -->
0344 
0345 <testOutputDirectory />
0346 
0347<!-- 使用来自该项目的一系列构建扩展 -->
0348 
0349 <extensions>
0350 
0351<!-- 描述使用到的构建扩展。 -->
0352 
0353 <extension>
0354 
0355<!-- 构建扩展的groupId -->
0356 
0357 <groupId />
0358 
0359<!-- 构建扩展的artifactId -->
0360 
0361 <artifactId />
0362 
0363<!-- 构建扩展的版本 -->
0364 
0365 <version />
0366 
0367 </extension>
0368 
0369 </extensions>
0370 
0371<!-- 当项目没有规定目标(Maven2 叫做阶段)时的默认值 -->
0372 
0373 <defaultGoal />
0374 
0375<!-- 这个元素描述了项目相关的所有资源路径列表,例如和项目相关的属性文件,这些资源被包含在最终的打包文件里。 -->
0376 
0377 <resources>
0378 
0379<!-- 这个元素描述了项目相关或测试相关的所有资源路径 -->
0380 
0381 <resource>
0382 
0383<!-- 描述了资源的目标路径。该路径相对target/classes目录(例如${project.build.outputDirectory})。举个例子,如果你想资源在特定的包里(org.apache.maven.messages),你就必须该元素设置为org/apache/maven/messages。然而,如果你只是想把资源放到源码目录结构里,就不需要该配置。 -->
0384 
0385 <targetPath />
0386 
0387<!-- 是否使用参数值代替参数名。参数值取自properties元素或者文件里配置的属性,文件在filters元素里列出。 -->
0388 
0389 <filtering />
0390 
0391<!-- 描述存放资源的目录,该路径相对POM路径 -->
0392 
0393 <directory />
0394 
0395<!-- 包含的模式列表,例如**/*.xml. -->
0396 
0397 <includes />
0398 
0399<!-- 排除的模式列表,例如**/*.xml -->
0400 
0401 <excludes />
0402 
0403 </resource>
0404 
0405 </resources>
0406 
0407<!-- 这个元素描述了单元测试相关的所有资源路径,例如和单元测试相关的属性文件。 -->
0408 
0409 <testResources>
0410 
0411<!-- 这个元素描述了测试相关的所有资源路径,参见build/resources/resource元素的说明 -->
0412 
0413 <testResource>
0414 
0415 <targetPath /><filtering /><directory /><includes /><excludes />
0416 
0417 </testResource>
0418 
0419 </testResources>
0420 
0421<!-- 构建产生的所有文件存放的目录 -->
0422 
0423 <directory />
0424 
0425<!-- 产生的构件的文件名,默认值是${artifactId}-${version}。 -->
0426 
0427 <finalName />
0428 
0429<!-- 当filtering开关打开时,使用到的过滤器属性文件列表 -->
0430 
0431 <filters />
0432 
0433<!-- 子项目可以引用的默认插件信息。该插件配置项直到被引用时才会被解析或绑定到生命周期。给定插件的任何本地配置都会覆盖这里的配置 -->
0434 
0435 <pluginManagement>
0436 
0437<!-- 使用的插件列表 。 -->
0438 
0439 <plugins>
0440 
0441<!-- plugin元素包含描述插件所需要的信息。 -->
0442 
0443 <plugin>
0444 
0445<!-- 插件在仓库里的group ID -->
0446 
0447 <groupId />
0448 
0449<!-- 插件在仓库里的artifact ID -->
0450 
0451 <artifactId />
0452 
0453<!-- 被使用的插件的版本(或版本范围) -->
0454 
0455 <version />
0456 
0457<!-- 是否从该插件下载Maven扩展(例如打包和类型处理器),由于性能原因,只有在真需要下载时,该元素才被设置成enabled。 -->
0458 
0459 <extensions />
0460 
0461<!-- 在构建生命周期中执行一组目标的配置。每个目标可能有不同的配置。 -->
0462 
0463 <executions>
0464 
0465<!-- execution元素包含了插件执行需要的信息 -->
0466 
0467 <execution>
0468 
0469<!-- 执行目标的标识符,用于标识构建过程中的目标,或者匹配继承过程中需要合并的执行目标 -->
0470 
0471 <id />
0472 
0473<!-- 绑定了目标的构建生命周期阶段,如果省略,目标会被绑定到源数据里配置的默认阶段 -->
0474 
0475 <phase />
0476 
0477<!-- 配置的执行目标 -->
0478 
0479 <goals />
0480 
0481<!-- 配置是否被传播到子POM -->
0482 
0483 <inherited />
0484 
0485<!-- 作为DOM对象的配置 -->
0486 
0487 <configuration />
0488 
0489 </execution>
0490 
0491 </executions>
0492 
0493<!-- 项目引入插件所需要的额外依赖 -->
0494 
0495 <dependencies>
0496 
0497<!-- 参见dependencies/dependency元素 -->
0498 
0499 <dependency>
0500 
0501 
0502 
0503 </dependency>
0504 
0505 </dependencies>
0506 
0507<!-- 任何配置是否被传播到子项目 -->
0508 
0509 <inherited />
0510 
0511<!-- 作为DOM对象的配置 -->
0512 
0513 <configuration />
0514 
0515 </plugin>
0516 
0517 </plugins>
0518 
0519 </pluginManagement>
0520 
0521<!-- 使用的插件列表 -->
0522 
0523 <plugins>
0524 
0525<!-- 参见build/pluginManagement/plugins/plugin元素 -->
0526 
0527 <plugin>
0528 
0529 <groupId /><artifactId /><version /><extensions />
0530 
0531 <executions>
0532 
0533 <execution>
0534 
0535 <id /><phase /><goals /><inherited /><configuration />
0536 
0537 </execution>
0538 
0539 </executions>
0540 
0541 <dependencies>
0542 
0543<!-- 参见dependencies/dependency元素 -->
0544 
0545 <dependency>
0546 
0547 
0548 
0549 </dependency>
0550 
0551 </dependencies>
0552 
0553 <goals /><inherited /><configuration />
0554 
0555 </plugin>
0556 
0557 </plugins>
0558 
0559 </build>
0560 
0561<!-- 在列的项目构建profile,如果被激活,会修改构建处理 -->
0562 
0563 <profiles>
0564 
0565<!-- 根据环境参数或命令行参数激活某个构建处理 -->
0566 
0567 <profile>
0568 
0569<!-- 构建配置的唯一标识符。即用于命令行激活,也用于在继承时合并具有相同标识符的profile。 -->
0570 
0571 <id />
0572 
0573<!-- 自动触发profile的条件逻辑。Activation是profile的开启钥匙。profile的力量来自于它
0574 
0575能够在某些特定的环境中自动使用某些特定的值;这些环境通过activation元素指定。activation元素并不是激活profile的唯一方式。 -->
0576 
0577 <activation>
0578 
0579<!-- profile默认是否激活的标志 -->
0580 
0581 <activeByDefault />
0582 
0583<!-- 当匹配的jdk被检测到,profile被激活。例如,1.4激活JDK1.4,1.4.0_2,而!1.4激活所有版本不是以1.4开头的JDK。 -->
0584 
0585 <jdk />
0586 
0587<!-- 当匹配的操作系统属性被检测到,profile被激活。os元素可以定义一些操作系统相关的属性。 -->
0588 
0589 <os>
0590 
0591<!-- 激活profile的操作系统的名字 -->
0592 
0593 <name> Windows XP </name>
0594 
0595<!-- 激活profile的操作系统所属家族(如 'windows') -->
0596 
0597 <family> Windows </family>
0598 
0599<!-- 激活profile的操作系统体系结构 -->
0600 
0601 <arch> x86 </arch>
0602 
0603<!-- 激活profile的操作系统版本 -->
0604 
0605 <version> 5.1.2600 </version>
0606 
0607 </os>
0608 
0609<!-- 如果Maven检测到某一个属性(其值可以在POM中通过${名称}引用),其拥有对应的名称和值,Profile就会被激活。如果值
0610 
0611字段是空的,那么存在属性名称字段就会激活profile,否则按区分大小写方式匹配属性值字段 -->
0612 
0613 <property>
0614 
0615<!-- 激活profile的属性的名称 -->
0616 
0617 <name> mavenVersion </name>
0618 
0619<!-- 激活profile的属性的值 -->
0620 
0621 <value> 2.0.3 </value>
0622 
0623 </property>
0624 
0625<!-- 提供一个文件名,通过检测该文件的存在或不存在来激活profile。missing检查文件是否存在,如果不存在则激活
0626 
0627profile。另一方面,exists则会检查文件是否存在,如果存在则激活profile。 -->
0628 
0629 <file>
0630 
0631<!-- 如果指定的文件存在,则激活profile。 -->
0632 
0633 <exists> /usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/ </exists>
0634 
0635<!-- 如果指定的文件不存在,则激活profile。 -->
0636 
0637 <missing> /usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/ </missing>
0638 
0639 </file>
0640 
0641 </activation>
0642 
0643<!-- 构建项目所需要的信息。参见build元素 -->
0644 
0645 <build>
0646 
0647 <defaultGoal />
0648 
0649 <resources>
0650 
0651 <resource>
0652 
0653 <targetPath /><filtering /><directory /><includes /><excludes />
0654 
0655 </resource>
0656 
0657 </resources>
0658 
0659 <testResources>
0660 
0661 <testResource>
0662 
0663 <targetPath /><filtering /><directory /><includes /><excludes />
0664 
0665 </testResource>
0666 
0667 </testResources>
0668 
0669 <directory /><finalName /><filters />
0670 
0671 <pluginManagement>
0672 
0673 <plugins>
0674 
0675<!-- 参见build/pluginManagement/plugins/plugin元素 -->
0676 
0677 <plugin>
0678 
0679 <groupId /><artifactId /><version /><extensions />
0680 
0681 <executions>
0682 
0683 <execution>
0684 
0685 <id /><phase /><goals /><inherited /><configuration />
0686 
0687 </execution>
0688 
0689 </executions>
0690 
0691 <dependencies>
0692 
0693<!-- 参见dependencies/dependency元素 -->
0694 
0695 <dependency>
0696 
0697 
0698 
0699 </dependency>
0700 
0701 </dependencies>
0702 
0703 <goals /><inherited /><configuration />
0704 
0705 </plugin>
0706 
0707 </plugins>
0708 
0709 </pluginManagement>
0710 
0711 <plugins>
0712 
0713<!-- 参见build/pluginManagement/plugins/plugin元素 -->
0714 
0715 <plugin>
0716 
0717 <groupId /><artifactId /><version /><extensions />
0718 
0719 <executions>
0720 
0721 <execution>
0722 
0723 <id /><phase /><goals /><inherited /><configuration />
0724 
0725 </execution>
0726 
0727 </executions>
0728 
0729 <dependencies>
0730 
0731<!-- 参见dependencies/dependency元素 -->
0732 
0733 <dependency>
0734 
0735 
0736 
0737 </dependency>
0738 
0739 </dependencies>
0740 
0741 <goals /><inherited /><configuration />
0742 
0743 </plugin>
0744 
0745 </plugins>
0746 
0747 </build>
0748 
0749<!-- 模块(有时称作子项目) 被构建成项目的一部分。列出的每个模块元素是指向该模块的目录的相对路径 -->
0750 
0751 <modules />
0752 
0753<!-- 发现依赖和扩展的远程仓库列表。 -->
0754 
0755 <repositories>
0756 
0757<!-- 参见repositories/repository元素 -->
0758 
0759 <repository>
0760 
0761 <releases>
0762 
0763 <enabled /><updatePolicy /><checksumPolicy />
0764 
0765 </releases>
0766 
0767 <snapshots>
0768 
0769 <enabled /><updatePolicy /><checksumPolicy />
0770 
0771 </snapshots>
0772 
0773 <id /><name /><url /><layout />
0774 
0775 </repository>
0776 
0777 </repositories>
0778 
0779<!-- 发现插件的远程仓库列表,这些插件用于构建和报表 -->
0780 
0781 <pluginRepositories>
0782 
0783<!-- 包含需要连接到远程插件仓库的信息.参见repositories/repository元素 -->
0784 
0785 <pluginRepository>
0786 
0787 <releases>
0788 
0789 <enabled /><updatePolicy /><checksumPolicy />
0790 
0791 </releases>
0792 
0793 <snapshots>
0794 
0795 <enabled /><updatePolicy /><checksumPolicy />
0796 
0797 </snapshots>
0798 
0799 <id /><name /><url /><layout />
0800 
0801 </pluginRepository>
0802 
0803 </pluginRepositories>
0804 
0805<!-- 该元素描述了项目相关的所有依赖。 这些依赖组成了项目构建过程中的一个个环节。它们自动从项目定义的仓库中下载。要获取更多信息,请看项目依赖机制。 -->
0806 
0807 <dependencies>
0808 
0809<!-- 参见dependencies/dependency元素 -->
0810 
0811 <dependency>
0812 
0813 
0814 
0815 </dependency>
0816 
0817 </dependencies>
0818 
0819<!-- 不赞成使用. 现在Maven忽略该元素. -->
0820 
0821 <reports />
0822 
0823<!-- 该元素包括使用报表插件产生报表的规范。当用户执行“mvn site”,这些报表就会运行。 在页面导航栏能看到所有报表的链接。参见reporting元素 -->
0824 
0825 <reporting>
0826 
0827 
0828 
0829 </reporting>
0830 
0831<!-- 参见dependencyManagement元素 -->
0832 
0833 <dependencyManagement>
0834 
0835 <dependencies>
0836 
0837<!-- 参见dependencies/dependency元素 -->
0838 
0839 <dependency>
0840 
0841 
0842 
0843 </dependency>
0844 
0845 </dependencies>
0846 
0847 </dependencyManagement>
0848 
0849<!-- 参见distributionManagement元素 -->
0850 
0851 <distributionManagement>
0852 
0853 
0854 
0855 </distributionManagement>
0856 
0857<!-- 参见properties元素 -->
0858 
0859 <properties />
0860 
0861 </profile>
0862 
0863 </profiles>
0864 
0865<!-- 模块(有时称作子项目) 被构建成项目的一部分。列出的每个模块元素是指向该模块的目录的相对路径 -->
0866 
0867 <modules />
0868 
0869<!-- 发现依赖和扩展的远程仓库列表。 -->
0870 
0871 <repositories>
0872 
0873<!-- 包含需要连接到远程仓库的信息 -->
0874 
0875 <repository>
0876 
0877<!-- 如何处理远程仓库里发布版本的下载 -->
0878 
0879 <releases>
0880 
0881<!-- true或者false表示该仓库是否为下载某种类型构件(发布版,快照版)开启。 -->
0882 
0883 <enabled />
0884 
0885<!-- 该元素指定更新发生的频率。Maven会比较本地POM和远程POM的时间戳。这里的选项是:always(一直),daily(默认,每日),interval:X(这里X是以分钟为单位的时间间隔),或者never(从不)。 -->
0886 
0887 <updatePolicy />
0888 
0889<!-- 当Maven验证构件校验文件失败时该怎么做:ignore(忽略),fail(失败),或者warn(警告)。 -->
0890 
0891 <checksumPolicy />
0892 
0893 </releases>
0894 
0895<!-- 如何处理远程仓库里快照版本的下载。有了releases和snapshots这两组配置,POM就可以在每个单独的仓库中,为每种类型的构件采取不同的策略。例如,可能有人会决定只为开发目的开启对快照版本下载的支持。参见repositories/repository/releases元素 -->
0896 
0897 <snapshots>
0898 
0899 <enabled /><updatePolicy /><checksumPolicy />
0900 
0901 </snapshots>
0902 
0903<!-- 远程仓库唯一标识符。可以用来匹配在settings.xml文件里配置的远程仓库 -->
0904 
0905 <id> banseon-repository-proxy </id>
0906 
0907<!-- 远程仓库名称 -->
0908 
0909 <name> banseon-repository-proxy </name>
0910 
0911<!-- 远程仓库URL,按protocol://hostname/path形式 -->
0912 
0914 
0915<!-- 用于定位和排序构件的仓库布局类型-可以是default(默认)或者legacy(遗留)。Maven 2为其仓库提供了一个默认的布局;然而,Maven 1.x有一种不同的布局。我们可以使用该元素指定布局是default(默认)还是legacy(遗留)。 -->
0916 
0917 <layout> default </layout>
0918 
0919 </repository>
0920 
0921 </repositories>
0922 
0923<!-- 发现插件的远程仓库列表,这些插件用于构建和报表 -->
0924 
0925 <pluginRepositories>
0926 
0927<!-- 包含需要连接到远程插件仓库的信息.参见repositories/repository元素 -->
0928 
0929 <pluginRepository>
0930 
0931 
0932 
0933 </pluginRepository>
0934 
0935 </pluginRepositories>
0936 
0937 
0938 
0939<!-- 该元素描述了项目相关的所有依赖。 这些依赖组成了项目构建过程中的一个个环节。它们自动从项目定义的仓库中下载。要获取更多信息,请看项目依赖机制。 -->
0940 
0941 <dependencies>
0942 
0943 <dependency>
0944 
0945<!-- 依赖的group ID -->
0946 
0947 <groupId> org.apache.maven </groupId>
0948 
0949<!-- 依赖的artifact ID -->
0950 
0951 <artifactId> maven-artifact </artifactId>
0952 
0953<!-- 依赖的版本号。 在Maven 2里, 也可以配置成版本号的范围。 -->
0954 
0955 <version> 3.8.1 </version>
0956 
0957<!-- 依赖类型,默认类型是jar。它通常表示依赖的文件的扩展名,但也有例外。一个类型可以被映射成另外一个扩展名或分类器。类型经常和使用的打包方式对应,尽管这也有例外。一些类型的例子:jar,war,ejb-client和test-jar。如果设置extensions为 true,就可以在plugin里定义新的类型。所以前面的类型的例子不完整。 -->
0958 
0959 <type> jar </type>
0960 
0961<!-- 依赖的分类器。分类器可以区分属于同一个POM,但不同构建方式的构件。分类器名被附加到文件名的版本号后面。例如,如果你想要构建两个单独的构件成JAR,一个使用Java 1.4编译器,另一个使用Java 6编译器,你就可以使用分类器来生成两个单独的JAR构件。 -->
0962 
0963 <classifier></classifier>
0964 
0965<!-- 依赖范围。在项目发布过程中,帮助决定哪些构件被包括进来。欲知详情请参考依赖机制。
0966 
0967- compile :默认范围,用于编译
0968 
0969- provided:类似于编译,但支持你期待jdk或者容器提供,类似于classpath
0970 
0971- runtime: 在执行时需要使用
0972 
0973- test: 用于test任务时使用
0974 
0975- system: 需要外在提供相应的元素。通过systemPath来取得
0976 
0977- systemPath: 仅用于范围为system。提供相应的路径
0978 
0979- optional: 当项目自身被依赖时,标注依赖是否传递。用于连续依赖时使用 -->
0980 
0981 <scope> test </scope>
0982 
0983<!-- 仅供system范围使用。注意,不鼓励使用这个元素,并且在新的版本中该元素可能被覆盖掉。该元素为依赖规定了文件系统上的路径。需要绝对路径而不是相对路径。推荐使用属性匹配绝对路径,例如${java.home}。 -->
0984 
0985 <systemPath></systemPath>
0986 
0987<!-- 当计算传递依赖时, 从依赖构件列表里,列出被排除的依赖构件集。即告诉maven你只依赖指定的项目,不依赖项目的依赖。此元素主要用于解决版本冲突问题 -->
0988 
0989 <exclusions>
0990 
0991 <exclusion>
0992 
0993 <artifactId> spring-core </artifactId>
0994 
0995 <groupId> org.springframework </groupId>
0996 
0997 </exclusion>
0998 
0999 </exclusions>
1000 
1001<!-- 可选依赖,如果你在项目B中把C依赖声明为可选,你就需要在依赖于B的项目(例如项目A)中显式的引用对C的依赖。可选依赖阻断依赖的传递性。 -->
1002 
1003 <optional> true </optional>
1004 
1005 </dependency>
1006 
1007 </dependencies>
1008 
1009<!-- 不赞成使用. 现在Maven忽略该元素. -->
1010 
1011 <reports></reports>
1012 
1013<!-- 该元素描述使用报表插件产生报表的规范。当用户执行“mvn site”,这些报表就会运行。 在页面导航栏能看到所有报表的链接。 -->
1014 
1015 <reporting>
1016 
1017<!-- true,则,网站不包括默认的报表。这包括“项目信息”菜单中的报表。 -->
1018 
1019 <excludeDefaults />
1020 
1021<!-- 所有产生的报表存放到哪里。默认值是${project.build.directory}/site。 -->
1022 
1023 <outputDirectory />
1024 
1025<!-- 使用的报表插件和他们的配置。 -->
1026 
1027 <plugins>
1028 
1029<!-- plugin元素包含描述报表插件需要的信息 -->
1030 
1031 <plugin>
1032 
1033<!-- 报表插件在仓库里的group ID -->
1034 
1035 <groupId />
1036 
1037<!-- 报表插件在仓库里的artifact ID -->
1038 
1039 <artifactId />
1040 
1041<!-- 被使用的报表插件的版本(或版本范围) -->
1042 
1043 <version />
1044 
1045<!-- 任何配置是否被传播到子项目 -->
1046 
1047 <inherited />
1048 
1049<!-- 报表插件的配置 -->
1050 
1051 <configuration />
1052 
1053<!-- 一组报表的多重规范,每个规范可能有不同的配置。一个规范(报表集)对应一个执行目标 。例如,有1,2,3,4,5,6,7,8,9个报表。1,2,5构成A报表集,对应一个执行目标。2,5,8构成B报表集,对应另一个执行目标 -->
1054 
1055 <reportSets>
1056 
1057<!-- 表示报表的一个集合,以及产生该集合的配置 -->
1058 
1059 <reportSet>
1060 
1061<!-- 报表集合的唯一标识符,POM继承时用到 -->
1062 
1063 <id />
1064 
1065<!-- 产生报表集合时,被使用的报表的配置 -->
1066 
1067 <configuration />
1068 
1069<!-- 配置是否被继承到子POMs -->
1070 
1071 <inherited />
1072 
1073<!-- 这个集合里使用到哪些报表 -->
1074 
1075 <reports />
1076 
1077 </reportSet>
1078 
1079 </reportSets>
1080 
1081 </plugin>
1082 
1083 </plugins>
1084 
1085 </reporting>
1086 
1087<!-- 继承自该项目的所有子项目的默认依赖信息。这部分的依赖信息不会被立即解析,而是当子项目声明一个依赖(必须描述group ID和artifact ID信息),如果group ID和artifact ID以外的一些信息没有描述,则通过group ID和artifact ID匹配到这里的依赖,并使用这里的依赖信息。 -->
1088 
1089 <dependencyManagement>
1090 
1091 <dependencies>
1092 
1093<!-- 参见dependencies/dependency元素 -->
1094 
1095 <dependency>
1096 
1097 
1098 
1099 </dependency>
1100 
1101 </dependencies>
1102 
1103 </dependencyManagement>
1104 
1105<!-- 项目分发信息,在执行mvn deploy后表示要发布的位置。有了这些信息就可以把网站部署到远程服务器或者把构件部署到远程仓库。 -->
1106 
1107 <distributionManagement>
1108 
1109<!-- 部署项目产生的构件到远程仓库需要的信息 -->
1110 
1111 <repository>
1112 
1113<!-- 是分配给快照一个唯一的版本号(由时间戳和构建流水号)?还是每次都使用相同的版本号?参见repositories/repository元素 -->
1114 
1115 <uniqueVersion />
1116 
1117 <id> banseon-maven2 </id>
1118 
1119 <name> banseon maven2 </name>
1120 
1121 <urlfile://${basedir}/target/deploy </url>
1122 
1123 <layout />
1124 
1125 </repository>
1126 
1127<!-- 构件的快照部署到哪里?如果没有配置该元素,默认部署到repository元素配置的仓库,参见distributionManagement/repository元素 -->
1128 
1129 <snapshotRepository>
1130 
1131 <uniqueVersion />
1132 
1133 <id> banseon-maven2 </id>
1134 
1135 <name> Banseon-maven2 Snapshot Repository </name>
1136 
1138 
1139 <layout />
1140 
1141 </snapshotRepository>
1142 
1143<!-- 部署项目的网站需要的信息 -->
1144 
1145 <site>
1146 
1147<!-- 部署位置的唯一标识符,用来匹配站点和settings.xml文件里的配置 -->
1148 
1149 <id> banseon-site </id>
1150 
1151<!-- 部署位置的名称 -->
1152 
1153 <name> business api website </name>
1154 
1155<!-- 部署位置的URL,按protocol://hostname/path形式 -->
1156 
1157 <url>
1158 
1160 
1161 </url>
1162 
1163 </site>
1164 
1165<!-- 项目下载页面的URL。如果没有该元素,用户应该参考主页。使用该元素的原因是:帮助定位那些不在仓库里的构件(由于license限制)。 -->
1166 
1167 <downloadUrl />
1168 
1169<!-- 如果构件有了新的group ID和artifact ID(构件移到了新的位置),这里列出构件的重定位信息。 -->
1170 
1171 <relocation>
1172 
1173<!-- 构件新的group ID -->
1174 
1175 <groupId />
1176 
1177<!-- 构件新的artifact ID -->
1178 
1179 <artifactId />
1180 
1181<!-- 构件新的版本号 -->
1182 
1183 <version />
1184 
1185<!-- 显示给用户的,关于移动的额外信息,例如原因。 -->
1186 
1187 <message />
1188 
1189 </relocation>
1190 
1191<!-- 给出该构件在远程仓库的状态。不得在本地项目中设置该元素,因为这是工具自动更新的。有效的值有:none(默认),converted(仓库管理员从Maven 1 POM转换过来),partner(直接从伙伴Maven 2仓库同步过来),deployed(从Maven 2实例部署),verified(被核实时正确的和最终的)。 -->
1192 
1193 <status />
1194 
1195 </distributionManagement>
1196 
1197<!-- 以值替代名称,Properties可以在整个POM中使用,也可以作为触发条件(见settings.xml配置文件里activation元素的说明)。格式是<name>value</name>。 -->
1198 
1199 <properties />
1200 
1201 </project>

 

 

转自:http://www.zuidaima.com/share/1781583829978112.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值