maven pom文件详解

Posted blogsheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven pom文件详解相关的知识,希望对你有一定的参考价值。

 http://www.blogjava.net/hellxoul/archive/2013/05/16/399345.html

   1 <project xmlns="http://maven.apache.org/POM/4.0.0 "    
   2 
   3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance "    
   4 
   5     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd ">    
   6 
   7     <!--父项目的坐标。如果项目中没有规定某个元素的值,那么父项目中的对应值即为项目的默认值。 坐标包括group ID,artifact ID和 version。-->  
   8 
   9     <parent>   
  10 
  11      <!--被继承的父项目的构件标识符-->  
  12 
  13      <artifactId/>   
  14 
  15      <!--被继承的父项目的全球唯一标识符-->  
  16 
  17      <groupId/>   
  18 
  19      <!--被继承的父项目的版本-->  
  20 
  21      <version/>   
  22 
  23      <!--父项目的pom.xml文件的相对路径。相对路径允许你选择一个不同的路径。默认值是../pom.xml。Maven首先在构建当前项目的地方寻找父项目的pom,其次在文件系统的这个位置(relativePath位置),然后在本地仓库,最后在远程仓库寻找父项目的pom。-->  
  24 
  25      <relativePath/>   
  26 
  27  </parent>   
  28 
  29  <!--声明项目描述符遵循哪一个POM模型版本。模型本身的版本很少改变,虽然如此,但它仍然是必不可少的,这是为了当Maven引入了新的特性或者其他模型变更的时候,确保稳定性。-->      
  30 
  31     <modelVersion>4.0.0</modelVersion>    
  32 
  33     <!--项目的全球唯一标识符,通常使用全限定的包名区分该项目和其他项目。并且构建时生成的路径也是由此生成, 如com.mycompany.app生成的相对路径为:/com/mycompany/app-->    
  34 
  35     <groupId>asia.banseon</groupId>     
  36 
  37     <!--构件的标识符,它和group ID一起唯一标识一个构件。换句话说,你不能有两个不同的项目拥有同样的artifact ID和groupID;在某个特定的group ID下,artifact ID也必须是唯一的。构件是项目产生的或使用的一个东西,Maven为项目产生的构件包括:JARs,源码,二进制发布和WARs等。-->    
  38 
  39     <artifactId>banseon-maven2</artifactId>     
  40 
  41     <!--项目产生的构件类型,例如jar、war、ear、pom。插件可以创建他们自己的构件类型,所以前面列的不是全部构件类型-->    
  42 
  43     <packaging>jar</packaging>     
  44 
  45     <!--项目当前版本,格式为:主版本.次版本.增量版本-限定版本号-->    
  46 
  47     <version>1.0-SNAPSHOT</version>    
  48 
  49     <!--项目的名称, Maven产生的文档用-->    
  50 
  51     <name>banseon-maven</name>    
  52 
  53     <!--项目主页的URL, Maven产生的文档用-->    
  54 
  55     <url>http://www.baidu.com/banseon</url>    
  56 
  57     <!--项目的详细描述, Maven 产生的文档用。  当这个元素能够用HTML格式描述时(例如,CDATA中的文本会被解析器忽略,就可以包含HTML标签), 不鼓励使用纯文本描述。如果你需要修改产生的web站点的索引页面,你应该修改你自己的索引页文件,而不是调整这里的文档。-->    
  58 
  59     <description>A maven project to study maven.</description>     
  60 
  61     <!--描述了这个项目构建环境中的前提条件。-->  
  62 
  63  <prerequisites>   
  64 
  65   <!--构建该项目或使用该插件所需要的Maven的最低版本-->  
  66 
  67     <maven/>  
  68 
  69  </prerequisites>   
  70 
  71  <!--项目的问题管理系统(Bugzilla, Jira, Scarab,或任何你喜欢的问题管理系统)的名称和URL,本例为 jira-->    
  72 
  73     <issueManagement>   
  74 
  75      <!--问题管理系统(例如jira)的名字,-->    
  76 
  77         <system>jira</system>    
  78 
  79         <!--该项目使用的问题管理系统的URL-->  
  80 
  81         <url>http://jira.baidu.com/banseon</url>    
  82 
  83     </issueManagement>    
  84 
  85     <!--项目持续集成信息-->  
  86 
  87  <ciManagement>   
  88 
  89   <!--持续集成系统的名字,例如continuum-->  
  90 
  91   <system/>   
  92 
  93   <!--该项目使用的持续集成系统的URL(如果持续集成系统有web接口的话)。-->  
  94 
  95   <url/>   
  96 
  97   <!--构建完成时,需要通知的开发者/用户的配置项。包括被通知者信息和通知条件(错误,失败,成功,警告)-->  
  98 
  99   <notifiers>   
 100 
 101    <!--配置一种方式,当构建中断时,以该方式通知用户/开发者-->  
 102 
 103    <notifier>   
 104 
 105     <!--传送通知的途径-->  
 106 
 107     <type/>   
 108 
 109     <!--发生错误时是否通知-->  
 110 
 111     <sendOnError/>   
 112 
 113     <!--构建失败时是否通知-->  
 114 
 115     <sendOnFailure/>   
 116 
 117     <!--构建成功时是否通知-->  
 118 
 119     <sendOnSuccess/>   
 120 
 121     <!--发生警告时是否通知-->  
 122 
 123     <sendOnWarning/>   
 124 
 125     <!--不赞成使用。通知发送到哪里-->  
 126 
 127     <address/>   
 128 
 129     <!--扩展配置项-->  
 130 
 131     <configuration/>  
 132 
 133    </notifier>  
 134 
 135   </notifiers>  
 136 
 137  </ciManagement>   
 138 
 139  <!--项目创建年份,4位数字。当产生版权信息时需要使用这个值。-->  
 140 
 141     <inceptionYear/>   
 142 
 143     <!--项目相关邮件列表信息-->    
 144 
 145     <mailingLists>   
 146 
 147      <!--该元素描述了项目相关的所有邮件列表。自动产生的网站引用这些信息。-->    
 148 
 149         <mailingList>    
 150 
 151          <!--邮件的名称-->  
 152 
 153             <name>Demo</name>     
 154 
 155             <!--发送邮件的地址或链接,如果是邮件地址,创建文档时,mailto: 链接会被自动创建-->    
 156 
 157             <post>[email protected]</post>    
 158 
 159             <!--订阅邮件的地址或链接,如果是邮件地址,创建文档时,mailto: 链接会被自动创建-->    
 160 
 161             <subscribe>[email protected]</subscribe>     
 162 
 163             <!--取消订阅邮件的地址或链接,如果是邮件地址,创建文档时,mailto: 链接会被自动创建-->    
 164 
 165             <unsubscribe>[email protected]</unsubscribe>    
 166 
 167             <!--你可以浏览邮件信息的URL-->  
 168 
 169             <archive>http:/hi.baidu.com/banseon/demo/dev/</archive>    
 170 
 171         </mailingList>    
 172 
 173     </mailingLists>    
 174 
 175     <!--项目开发者列表-->    
 176 
 177     <developers>    
 178 
 179      <!--某个项目开发者的信息-->  
 180 
 181         <developer>    
 182 
 183          <!--SCM里项目开发者的唯一标识符-->  
 184 
 185             <id>HELLO WORLD</id>     
 186 
 187             <!--项目开发者的全名-->  
 188 
 189             <name>banseon</name>    
 190 
 191             <!--项目开发者的email-->  
 192 
 193             <email>bans[email protected]</email>    
 194 
 195             <!--项目开发者的主页的URL-->  
 196 
 197             <url/>   
 198 
 199              <!--项目开发者在项目中扮演的角色,角色元素描述了各种角色-->  
 200 
 201              <roles>    
 202 
 203                  <role>Project Manager</role>    
 204 
 205                  <role>Architect</role>    
 206 
 207              </roles>   
 208 
 209              <!--项目开发者所属组织-->   
 210 
 211              <organization>demo</organization>    
 212 
 213              <!--项目开发者所属组织的URL-->  
 214 
 215              <organizationUrl>http://hi.baidu.com/banseon</organizationUrl>    
 216 
 217              <!--项目开发者属性,如即时消息如何处理等-->  
 218 
 219              <properties>    
 220 
 221                  <dept>No</dept>    
 222 
 223              </properties>   
 224 
 225              <!--项目开发者所在时区, -11到12范围内的整数。-->   
 226 
 227              <timezone>-5</timezone>    
 228 
 229          </developer>    
 230 
 231      </developers>    
 232 
 233      <!--项目的其他贡献者列表-->    
 234 
 235      <contributors>   
 236 
 237       <!--项目的其他贡献者。参见developers/developer元素-->  
 238 
 239       <contributor>  
 240 
 241     <name/><email/><url/><organization/><organizationUrl/><roles/><timezone/><properties/>  
 242 
 243       </contributor>       
 244 
 245      </contributors>      
 246 
 247      <!--该元素描述了项目所有License列表。 应该只列出该项目的license列表,不要列出依赖项目的 license列表。如果列出多个license,用户可以选择它们中的一个而不是接受所有license。-->    
 248 
 249      <licenses>   
 250 
 251       <!--描述了项目的license,用于生成项目的web站点的license页面,其他一些报表和validation也会用到该元素。-->    
 252 
 253          <license>   
 254 
 255           <!--license用于法律上的名称-->   
 256 
 257              <name>Apache 2</name>    
 258 
 259              <!--官方的license正文页面的URL-->  
 260 
 261              <url>http://www.baidu.com/banseon/LICENSE-2.0.txt</url>    
 262 
 263              <!--项目分发的主要方式:  
 264 
 265                repo,可以从Maven库下载  
 266 
 267                manual, 用户必须手动下载和安装依赖-->  
 268 
 269              <distribution>repo</distribution>    
 270 
 271              <!--关于license的补充信息-->  
 272 
 273              <comments>A business-friendly OSS license</comments>    
 274 
 275          </license>    
 276 
 277      </licenses>    
 278 
 279      <!--SCM(Source Control Management)标签允许你配置你的代码库,供Maven web站点和其它插件使用。-->    
 280 
 281      <scm>    
 282 
 283          <!--SCM的URL,该URL描述了版本库和如何连接到版本库。欲知详情,请看SCMs提供的URL格式和列表。该连接只读。-->    
 284 
 285          <connection>    
 286 
 287              scm:svn:http://svn.baidu.com/banseon/maven/banseon/banseon-maven2-trunk(dao-trunk)     
 288 
 289          </connection>    
 290 
 291          <!--给开发者使用的,类似connection元素。即该连接不仅仅只读-->  
 292 
 293          <developerConnection>    
 294 
 295              scm:svn:http://svn.baidu.com/banseon/maven/banseon/dao-trunk     
 296 
 297          </developerConnection>   
 298 
 299          <!--当前代码的标签,在开发阶段默认为HEAD-->  
 300 
 301          <tag/>           
 302 
 303          <!--指向项目的可浏览SCM库(例如ViewVC或者Fisheye)的URL。-->    
 304 
 305          <url>http://svn.baidu.com/banseon</url>    
 306 
 307      </scm>    
 308 
 309      <!--描述项目所属组织的各种属性。Maven产生的文档用-->    
 310 
 311      <organization>    
 312 
 313       <!--组织的全名-->  
 314 
 315          <name>demo</name>     
 316 
 317          <!--组织主页的URL-->  
 318 
 319          <url>http://www.baidu.com/banseon</url>    
 320 
 321      </organization>   
 322 
 323      <!--构建项目需要的信息-->  
 324 
 325      <build>   
 326 
 327       <!--该元素设置了项目源码目录,当构建项目的时候,构建系统会编译目录里的源码。该路径是相对于pom.xml的相对路径。-->  
 328 
 329    <sourceDirectory/>   
 330 
 331    <!--该元素设置了项目脚本源码目录,该目录和源码目录不同:绝大多数情况下,该目录下的内容 会被拷贝到输出目录(因为脚本是被解释的,而不是被编译的)。-->  
 332 
 333    <scriptSourceDirectory/>   
 334 
 335    <!--该元素设置了项目单元测试使用的源码目录,当测试项目的时候,构建系统会编译目录里的源码。该路径是相对于pom.xml的相对路径。-->  
 336 
 337    <testSourceDirectory/>   
 338 
 339    <!--被编译过的应用程序class文件存放的目录。-->  
 340 
 341    <outputDirectory/>   
 342 
 343    <!--被编译过的测试class文件存放的目录。-->  
 344 
 345    <testOutputDirectory/>   
 346 
 347    <!--使用来自该项目的一系列构建扩展-->  
 348 
 349    <extensions>   
 350 
 351     <!--描述使用到的构建扩展。-->  
 352 
 353     <extension>   
 354 
 355      <!--构建扩展的groupId-->  
 356 
 357      <groupId/>   
 358 
 359      <!--构建扩展的artifactId-->  
 360 
 361      <artifactId/>   
 362 
 363      <!--构建扩展的版本-->  
 364 
 365      <version/>  
 366 
 367     </extension>  
 368 
 369    </extensions>   
 370 
 371    <!--当项目没有规定目标(Maven2 叫做阶段)时的默认值-->  
 372 
 373    <defaultGoal/>   
 374 
 375    <!--这个元素描述了项目相关的所有资源路径列表,例如和项目相关的属性文件,这些资源被包含在最终的打包文件里。-->  
 376 
 377    <resources>   
 378 
 379     <!--这个元素描述了项目相关或测试相关的所有资源路径-->  
 380 
 381     <resource>   
 382 
 383      <!--描述了资源的目标路径。该路径相对target/classes目录(例如${project.build.outputDirectory})。举个例子,如果你想资源在特定的包里(org.apache.maven.messages),你就必须该元素设置为org/apache/maven/messages。然而,如果你只是想把资源放到源码目录结构里,就不需要该配置。-->  
 384 
 385      <targetPath/>   
 386 
 387      <!--是否使用参数值代替参数名。参数值取自properties元素或者文件里配置的属性,文件在filters元素里列出。-->  
 388 
 389      <filtering/>   
 390 
 391      <!--描述存放资源的目录,该路径相对POM路径-->  
 392 
 393      <directory/>   
 394 
 395      <!--包含的模式列表,例如**/*.xml.-->  
 396 
 397      <includes/>   
 398 
 399      <!--排除的模式列表,例如**/*.xml-->  
 400 
 401      <excludes/>  
 402 
 403     </resource>  
 404 
 405    </resources>   
 406 
 407    <!--这个元素描述了单元测试相关的所有资源路径,例如和单元测试相关的属性文件。-->  
 408 
 409    <testResources>   
 410 
 411     <!--这个元素描述了测试相关的所有资源路径,参见build/resources/resource元素的说明-->  
 412 
 413     <testResource>  
 414 
 415      <targetPath/><filtering/><directory/><includes/><excludes/>  
 416 
 417     </testResource>  
 418 
 419    </testResources>   
 420 
 421    <!--构建产生的所有文件存放的目录-->  
 422 
 423    <directory/>   
 424 
 425    <!--产生的构件的文件名,默认值是${artifactId}-${version}。-->  
 426 
 427    <finalName/>   
 428 
 429    <!--当filtering开关打开时,使用到的过滤器属性文件列表-->  
 430 
 431    <filters/>   
 432 
 433    <!--子项目可以引用的默认插件信息。该插件配置项直到被引用时才会被解析或绑定到生命周期。给定插件的任何本地配置都会覆盖这里的配置-->  
 434 
 435    <pluginManagement>   
 436 
 437     <!--使用的插件列表 。-->  
 438 
 439     <plugins>   
 440 
 441      <!--plugin元素包含描述插件所需要的信息。-->  
 442 
 443      <plugin>   
 444 
 445       <!--插件在仓库里的group ID-->  
 446 
 447       <groupId/>   
 448 
 449       <!--插件在仓库里的artifact ID-->  
 450 
 451       <artifactId/>   
 452 
 453       <!--被使用的插件的版本(或版本范围)-->  
 454 
 455       <version/>   
 456 
 457       <!--是否从该插件下载Maven扩展(例如打包和类型处理器),由于性能原因,只有在真需要下载时,该元素才被设置成enabled。-->  
 458 
 459       <extensions/>   
 460 
 461       <!--在构建生命周期中执行一组目标的配置。每个目标可能有不同的配置。-->  
 462 
 463       <executions>   
 464 
 465        <!--execution元素包含了插件执行需要的信息-->  
 466 
 467        <execution>   
 468 
 469         <!--执行目标的标识符,用于标识构建过程中的目标,或者匹配继承过程中需要合并的执行目标-->  
 470 
 471         <id/>   
 472 
 473         <!--绑定了目标的构建生命周期阶段,如果省略,目标会被绑定到源数据里配置的默认阶段-->  
 474 
 475         <phase/>   
 476 
 477         <!--配置的执行目标-->  
 478 
 479         <goals/>   
 480 
 481         <!--配置是否被传播到子POM-->  
 482 
 483         <inherited/>   
 484 
 485         <!--作为DOM对象的配置-->  
 486 
 487         <configuration/>  
 488 
 489        </execution>  
 490 
 491       </executions>   
 492 
 493       <!--项目引入插件所需要的额外依赖-->  
 494 
 495       <dependencies>   
 496 
 497        <!--参见dependencies/dependency元素-->  
 498 
 499        <dependency>  
 500 
 501         技术分享技术分享  
 502 
 503        </dependency>  
 504 
 505       </dependencies>        
 506 
 507       <!--任何配置是否被传播到子项目-->  
 508 
 509       <inherited/>   
 510 
 511       <!--作为DOM对象的配置-->  
 512 
 513       <configuration/>  
 514 
 515      </plugin>  
 516 
 517     </plugins>  
 518 
 519    </pluginManagement>   
 520 
 521    <!--使用的插件列表-->  
 522 
 523    <plugins>   
 524 
 525     <!--参见build/pluginManagement/plugins/plugin元素-->  
 526 
 527     <plugin>  
 528 
 529      <groupId/><artifactId/><version/><extensions/>  
 530 
 531      <executions>  
 532 
 533       <execution>  
 534 
 535        <id/><phase/><goals/><inherited/><configuration/>  
 536 
 537       </execution>  
 538 
 539      </executions>  
 540 
 541      <dependencies>   
 542 
 543       <!--参见dependencies/dependency元素-->  
 544 
 545       <dependency>  
 546 
 547        技术分享技术分享  
 548 
 549       </dependency>  
 550 
 551      </dependencies>  
 552 
 553      <goals/><inherited/><configuration/>  
 554 
 555     </plugin>  
 556 
 557    </plugins>  
 558 
 559   </build>   
 560 
 561   <!--在列的项目构建profile,如果被激活,会修改构建处理-->  
 562 
 563   <profiles>   
 564 
 565    <!--根据环境参数或命令行参数激活某个构建处理-->  
 566 
 567    <profile>   
 568 
 569     <!--构建配置的唯一标识符。即用于命令行激活,也用于在继承时合并具有相同标识符的profile。-->  
 570 
 571     <id/>   
 572 
 573     <!--自动触发profile的条件逻辑。Activation是profile的开启钥匙。profile的力量来自于它  
 574 
 575     能够在某些特定的环境中自动使用某些特定的值;这些环境通过activation元素指定。activation元素并不是激活profile的唯一方式。-->  
 576 
 577     <activation>   
 578 
 579      <!--profile默认是否激活的标志-->  
 580 
 581      <activeByDefault/>   
 582 
 583      <!--当匹配的jdk被检测到,profile被激活。例如,1.4激活JDK1.4,1.4.0_2,而!1.4激活所有版本不是以1.4开头的JDK。-->  
 584 
 585      <jdk/>   
 586 
 587      <!--当匹配的操作系统属性被检测到,profile被激活。os元素可以定义一些操作系统相关的属性。-->  
 588 
 589      <os>   
 590 
 591       <!--激活profile的操作系统的名字-->  
 592 
 593       <name>Windows XP</name>   
 594 
 595       <!--激活profile的操作系统所属家族(如 ‘windows‘)-->  
 596 
 597       <family>Windows</family>   
 598 
 599       <!--激活profile的操作系统体系结构 -->  
 600 
 601       <arch>x86</arch>   
 602 
 603       <!--激活profile的操作系统版本-->  
 604 
 605       <version>5.1.2600</version>  
 606 
 607      </os>   
 608 
 609      <!--如果Maven检测到某一个属性(其值可以在POM中通过${名称}引用),其拥有对应的名称和值,Profile就会被激活。如果值  
 610 
 611      字段是空的,那么存在属性名称字段就会激活profile,否则按区分大小写方式匹配属性值字段-->  
 612 
 613      <property>   
 614 
 615       <!--激活profile的属性的名称-->  
 616 
 617       <name>mavenVersion</name>   
 618 
 619       <!--激活profile的属性的值-->  
 620 
 621       <value>2.0.3</value>  
 622 
 623      </property>   
 624 
 625      <!--提供一个文件名,通过检测该文件的存在或不存在来激活profile。missing检查文件是否存在,如果不存在则激活  
 626 
 627      profile。另一方面,exists则会检查文件是否存在,如果存在则激活profile。-->  
 628 
 629      <file>   
 630 
 631       <!--如果指定的文件存在,则激活profile。-->  
 632 
 633       <exists>/usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/</exists>   
 634 
 635       <!--如果指定的文件不存在,则激活profile。-->  
 636 
 637       <missing>/usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/</missing>  
 638 
 639      </file>  
 640 
 641     </activation>   
 642 
 643     <!--构建项目所需要的信息。参见build元素-->  
 644 
 645     <build>  
 646 
 647      <defaultGoal/>  
 648 
 649      <resources>  
 650 
 651       <resource>  
 652 
 653        <targetPath/><filtering/><directory/><includes/><excludes/>  
 654 
 655       </resource>  
 656 
 657      </resources>  
 658 
 659      <testResources>  
 660 
 661       <testResource>  
 662 
 663        <targetPath/><filtering/><directory/><includes/><excludes/>  
 664 
 665       </testResource>  
 666 
 667      </testResources>  
 668 
 669      <directory/><finalName/><filters/>  
 670 
 671      <pluginManagement>  
 672 
 673       <plugins>   
 674 
 675        <!--参见build/pluginManagement/plugins/plugin元素-->  
 676 
 677        <plugin>  
 678 
 679         <groupId/><artifactId/><version/><extensions/>  
 680 
 681         <executions>  
 682 
 683          <execution>  
 684 
 685           <id/><phase/><goals/><inherited/><configuration/>  
 686 
 687          </execution>  
 688 
 689         </executions>  
 690 
 691         <dependencies>   
 692 
 693          <!--参见dependencies/dependency元素-->  
 694 
 695          <dependency>  
 696 
 697           技术分享技术分享  
 698 
 699          </dependency>  
 700 
 701         </dependencies>  
 702 
 703         <goals/><inherited/><configuration/>  
 704 
 705        </plugin>  
 706 
 707       </plugins>  
 708 
 709      </pluginManagement>  
 710 
 711      <plugins>   
 712 
 713       <!--参见build/pluginManagement/plugins/plugin元素-->  
 714 
 715       <plugin>  
 716 
 717        <groupId/><artifactId/><version/><extensions/>  
 718 
 719        <executions>  
 720 
 721         <execution>  
 722 
 723          <id/><phase/><goals/><inherited/><configuration/>  
 724 
 725         </execution>  
 726 
 727        </executions>  
 728 
 729        <dependencies>   
 730 
 731         <!--参见dependencies/dependency元素-->  
 732 
 733         <dependency>  
 734 
 735          技术分享技术分享  
 736 
 737         </dependency>  
 738 
 739        </dependencies>  
 740 
 741        <goals/><inherited/><configuration/>  
 742 
 743       </plugin>  
 744 
 745      </plugins>  
 746 
 747     </build>   
 748 
 749     <!--模块(有时称作子项目) 被构建成项目的一部分。列出的每个模块元素是指向该模块的目录的相对路径-->  
 750 
 751     <modules/>   
 752 
 753     <!--发现依赖和扩展的远程仓库列表。-->  
 754 
 755     <repositories>   
 756 
 757      <!--参见repositories/repository元素-->  
 758 
 759      <repository>  
 760 
 761       <releases>  
 762 
 763        <enabled/><updatePolicy/><checksumPolicy/>  
 764 
 765       </releases>  
 766 
 767       <snapshots>  
 768 
 769        <enabled/><updatePolicy/><checksumPolicy/>  
 770 
 771       </snapshots>  
 772 
 773       <id/><name/><url/><layout/>  
 774 
 775      </repository>  
 776 
 777     </repositories>   
 778 
 779     <!--发现插件的远程仓库列表,这些插件用于构建和报表-->  
 780 
 781     <pluginRepositories>   
 782 
 783      <!--包含需要连接到远程插件仓库的信息.参见repositories/repository元素-->      
 784 
 785      <pluginRepository>  
 786 
 787       <releases>  
 788 
 789        <enabled/><updatePolicy/><checksumPolicy/>  
 790 
 791       </releases>  
 792 
 793       <snapshots>  
 794 
 795        <enabled/><updatePolicy/><checksumPolicy/>  
 796 
 797       </snapshots>  
 798 
 799       <id/><name/><url/><layout/>  
 800 
 801      </pluginRepository>  
 802 
 803     </pluginRepositories>   
 804 
 805     <!--该元素描述了项目相关的所有依赖。 这些依赖组成了项目构建过程中的一个个环节。它们自动从项目定义的仓库中下载。要获取更多信息,请看项目依赖机制。-->  
 806 
 807     <dependencies>   
 808 
 809      <!--参见dependencies/dependency元素-->  
 810 
 811      <dependency>  
 812 
 813       技术分享技术分享  
 814 
 815      </dependency>  
 816 
 817     </dependencies>   
 818 
 819     <!--不赞成使用. 现在Maven忽略该元素.-->  
 820 
 821     <reports/>      
 822 
 823     <!--该元素包括使用报表插件产生报表的规范。当用户执行“mvn site”,这些报表就会运行。 在页面导航栏能看到所有报表的链接。参见reporting元素-->  
 824 
 825     <reporting>  
 826 
 827      技术分享技术分享  
 828 
 829     </reporting>   
 830 
 831     <!--参见dependencyManagement元素-->  
 832 
 833     <dependencyManagement>  
 834 
 835      <dependencies>   
 836 
 837       <!--参见dependencies/dependency元素-->  
 838 
 839       <dependency>  
 840 
 841        技术分享技术分享  
 842 
 843       </dependency>  
 844 
 845      </dependencies>  
 846 
 847     </dependencyManagement>   
 848 
 849     <!--参见distributionManagement元素-->  
 850 
 851     <distributionManagement>  
 852 
 853      技术分享技术分享  
 854 
 855     </distributionManagement>   
 856 
 857     <!--参见properties元素-->  
 858 
 859     <properties/>  
 860 
 861    </profile>  
 862 
 863   </profiles>   
 864 
 865   <!--模块(有时称作子项目) 被构建成项目的一部分。列出的每个模块元素是指向该模块的目录的相对路径-->  
 866 
 867   <modules/>  
 868 
 869      <!--发现依赖和扩展的远程仓库列表。-->    
 870 
 871      <repositories>    
 872 
 873       <!--包含需要连接到远程仓库的信息-->  
 874 
 875          <repository>   
 876 
 877           <!--如何处理远程仓库里发布版本的下载-->  
 878 
 879           <releases>   
 880 
 881            <!--true或者false表示该仓库是否为下载某种类型构件(发布版,快照版)开启。 -->  
 882 
 883      <enabled/>   
 884 
 885      <!--该元素指定更新发生的频率。Maven会比较本地POM和远程POM的时间戳。这里的选项是:always(一直),daily(默认,每日),interval:X(这里X是以分

以上是关于maven pom文件详解的主要内容,如果未能解决你的问题,请参考以下文章

Maven pom.xml文件详解

POM文件详解

Maven之pom.xml配置文件详解

史上最全的maven的pom.xml文件详解

Maven的pom.xml配置文件详解

mavenmaven pom文件详解