zoukankan      html  css  js  c++  java
  • 【maven】 pom.xml详解

    Maven官网地址pom.xml说明

    pom.xml详解

       1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       2 
       3     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd ">
       4 
       5     <!-- 父项目的坐标。如果项目中没有规定某个元素的值,那么父项目中的对应值即为项目的默认值。 坐标包括group ID,artifact ID和 
       6         version。 -->
       7 
       8     <parent>
       9 
      10         <!-- 被继承的父项目的构件标识符 -->
      11 
      12         <artifactId />
      13 
      14         <!-- 被继承的父项目的全球唯一标识符 -->
      15 
      16         <groupId />
      17 
      18         <!-- 被继承的父项目的版本 -->
      19 
      20         <version />
      21 
      22         <!-- 父项目的pom.xml文件的相对路径。相对路径允许你选择一个不同的路径。默认值是../pom.xml。Maven首先在构建当前项目的地方寻找父项目的pom,其次在文件系统的这个位置(relativePath位置),然后在本地仓库,最后在远程仓库寻找父项目的pom。 -->
      23 
      24         <relativePath />
      25 
      26     </parent>
      27 
      28     <!-- 声明项目描述符遵循哪一个POM模型版本。模型本身的版本很少改变,虽然如此,但它仍然是必不可少的,这是为了当Maven引入了新的特性或者其他模型变更的时候,确保稳定性。 -->
      29 
      30     <modelVersion> 4.0.0 </modelVersion>
      31 
      32     <!-- 项目的全球唯一标识符,通常使用全限定的包名区分该项目和其他项目。并且构建时生成的路径也是由此生成, 如com.mycompany.app生成的相对路径为:/com/mycompany/app -->
      33 
      34     <groupId> asia.banseon </groupId>
      35 
      36     <!-- 构件的标识符,它和group ID一起唯一标识一个构件。换句话说,你不能有两个不同的项目拥有同样的artifact ID和groupID;在某个特定的group 
      37         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标签), 
      58         不鼓励使用纯文本描述。如果你需要修改产生的web站点的索引页面,你应该修改你自己的索引页文件,而不是调整这里的文档。 -->
      59 
      60     <description> A maven project to study maven. </description>
      61 
      62     <!-- 描述了这个项目构建环境中的前提条件。 -->
      63 
      64     <prerequisites>
      65 
      66         <!-- 构建该项目或使用该插件所需要的Maven的最低版本 -->
      67 
      68         <maven />
      69 
      70     </prerequisites>
      71 
      72     <!-- 项目的问题管理系统(Bugzilla, Jira, Scarab,或任何你喜欢的问题管理系统)的名称和URL,本例为 jira -->
      73 
      74     <issueManagement>
      75 
      76         <!-- 问题管理系统(例如jira)的名字, -->
      77 
      78         <system> jira </system>
      79 
      80         <!-- 该项目使用的问题管理系统的URL -->
      81 
      82         <url> http://jira.baidu.com/banseon </url>
      83 
      84     </issueManagement>
      85 
      86     <!-- 项目持续集成信息 -->
      87 
      88     <ciManagement>
      89 
      90         <!-- 持续集成系统的名字,例如continuum -->
      91 
      92         <system />
      93 
      94         <!-- 该项目使用的持续集成系统的URL(如果持续集成系统有web接口的话)。 -->
      95 
      96         <url />
      97 
      98         <!-- 构建完成时,需要通知的开发者/用户的配置项。包括被通知者信息和通知条件(错误,失败,成功,警告) -->
      99 
     100         <notifiers>
     101 
     102             <!-- 配置一种方式,当构建中断时,以该方式通知用户/开发者 -->
     103 
     104             <notifier>
     105 
     106                 <!-- 传送通知的途径 -->
     107 
     108                 <type />
     109 
     110                 <!-- 发生错误时是否通知 -->
     111 
     112                 <sendOnError />
     113 
     114                 <!-- 构建失败时是否通知 -->
     115 
     116                 <sendOnFailure />
     117 
     118                 <!-- 构建成功时是否通知 -->
     119 
     120                 <sendOnSuccess />
     121 
     122                 <!-- 发生警告时是否通知 -->
     123 
     124                 <sendOnWarning />
     125 
     126                 <!-- 不赞成使用。通知发送到哪里 -->
     127 
     128                 <address />
     129 
     130                 <!-- 扩展配置项 -->
     131 
     132                 <configuration />
     133 
     134             </notifier>
     135 
     136         </notifiers>
     137 
     138     </ciManagement>
     139 
     140     <!-- 项目创建年份,4位数字。当产生版权信息时需要使用这个值。 -->
     141 
     142     <inceptionYear />
     143 
     144     <!-- 项目相关邮件列表信息 -->
     145 
     146     <mailingLists>
     147 
     148         <!-- 该元素描述了项目相关的所有邮件列表。自动产生的网站引用这些信息。 -->
     149 
     150         <mailingList>
     151 
     152             <!-- 邮件的名称 -->
     153 
     154             <name> Demo </name>
     155 
     156             <!-- 发送邮件的地址或链接,如果是邮件地址,创建文档时,mailto: 链接会被自动创建 -->
     157 
     158             <post> banseon@126.com </post>
     159 
     160             <!-- 订阅邮件的地址或链接,如果是邮件地址,创建文档时,mailto: 链接会被自动创建 -->
     161 
     162             <subscribe> banseon@126.com </subscribe>
     163 
     164             <!-- 取消订阅邮件的地址或链接,如果是邮件地址,创建文档时,mailto: 链接会被自动创建 -->
     165 
     166             <unsubscribe> banseon@126.com </unsubscribe>
     167 
     168             <!-- 你可以浏览邮件信息的URL -->
     169 
     170             <archive> http:/hi.baidu.com/banseon/demo/dev/ </archive>
     171 
     172         </mailingList>
     173 
     174     </mailingLists>
     175 
     176     <!-- 项目开发者列表 -->
     177 
     178     <developers>
     179 
     180         <!-- 某个项目开发者的信息 -->
     181 
     182         <developer>
     183 
     184             <!-- SCM里项目开发者的唯一标识符 -->
     185 
     186             <id> HELLO WORLD </id>
     187 
     188             <!-- 项目开发者的全名 -->
     189 
     190             <name> banseon </name>
     191 
     192             <!-- 项目开发者的email -->
     193 
     194             <email> banseon@126.com </email>
     195 
     196             <!-- 项目开发者的主页的URL -->
     197 
     198             <url />
     199 
     200             <!-- 项目开发者在项目中扮演的角色,角色元素描述了各种角色 -->
     201 
     202             <roles>
     203 
     204                 <role> Project Manager </role>
     205 
     206                 <role> Architect </role>
     207 
     208             </roles>
     209 
     210             <!-- 项目开发者所属组织 -->
     211 
     212             <organization> demo </organization>
     213 
     214             <!-- 项目开发者所属组织的URL -->
     215 
     216             <organizationUrl> http://hi.baidu.com/banseon </organizationUrl>
     217 
     218             <!-- 项目开发者属性,如即时消息如何处理等 -->
     219 
     220             <properties>
     221 
     222                 <dept> No </dept>
     223 
     224             </properties>
     225 
     226             <!-- 项目开发者所在时区, -11到12范围内的整数。 -->
     227 
     228             <timezone> -5 </timezone>
     229 
     230         </developer>
     231 
     232     </developers>
     233 
     234     <!-- 项目的其他贡献者列表 -->
     235 
     236     <contributors>
     237 
     238         <!-- 项目的其他贡献者。参见developers/developer元素 -->
     239 
     240         <contributor>
     241 
     242             <name />
     243             <email />
     244             <url />
     245             <organization />
     246             <organizationUrl />
     247             <roles />
     248             <timezone />
     249             <properties />
     250 
     251         </contributor>
     252 
     253     </contributors>
     254 
     255     <!-- 该元素描述了项目所有License列表。 应该只列出该项目的license列表,不要列出依赖项目的 license列表。如果列出多个license,用户可以选择它们中的一个而不是接受所有license。 -->
     256 
     257     <licenses>
     258 
     259         <!-- 描述了项目的license,用于生成项目的web站点的license页面,其他一些报表和validation也会用到该元素。 -->
     260 
     261         <license>
     262 
     263             <!-- license用于法律上的名称 -->
     264 
     265             <name> Apache 2 </name>
     266 
     267             <!-- 官方的license正文页面的URL -->
     268 
     269             <url> http://www.baidu.com/banseon/LICENSE-2.0.txt </url>
     270 
     271             <!-- 项目分发的主要方式: repo,可以从Maven库下载 manual, 用户必须手动下载和安装依赖 -->
     272 
     273             <distribution> repo </distribution>
     274 
     275             <!-- 关于license的补充信息 -->
     276 
     277             <comments> A business-friendly OSS license </comments>
     278 
     279         </license>
     280 
     281     </licenses>
     282 
     283     <!-- SCM(Source Control Management)标签允许你配置你的代码库,供Maven web站点和其它插件使用。 -->
     284 
     285     <scm>
     286 
     287         <!-- SCM的URL,该URL描述了版本库和如何连接到版本库。欲知详情,请看SCMs提供的URL格式和列表。该连接只读。 -->
     288 
     289         <connection> 
     290 
     291 scm:svn:http://svn.baidu.com/banseon/maven/banseon/banseon-maven2-trunk(dao-trunk) 
     292 
     293 </connection>
     294 
     295         <!-- 给开发者使用的,类似connection元素。即该连接不仅仅只读 -->
     296 
     297         <developerConnection> 
     298 
     299 scm:svn:http://svn.baidu.com/banseon/maven/banseon/dao-trunk 
     300 
     301 </developerConnection>
     302 
     303         <!-- 当前代码的标签,在开发阶段默认为HEAD -->
     304 
     305         <tag />
     306 
     307         <!-- 指向项目的可浏览SCM库(例如ViewVC或者Fisheye)的URL。 -->
     308 
     309         <url> http://svn.baidu.com/banseon </url>
     310 
     311     </scm>
     312 
     313     <!-- 描述项目所属组织的各种属性。Maven产生的文档用 -->
     314 
     315     <organization>
     316 
     317         <!-- 组织的全名 -->
     318 
     319         <name> demo </name>
     320 
     321         <!-- 组织主页的URL -->
     322 
     323         <url> http://www.baidu.com/banseon </url>
     324 
     325     </organization>
     326 
     327     <!-- 构建项目需要的信息 -->
     328 
     329     <build>
     330 
     331         <!-- 该元素设置了项目源码目录,当构建项目的时候,构建系统会编译目录里的源码。该路径是相对于pom.xml的相对路径。 -->
     332 
     333         <sourceDirectory />
     334 
     335         <!-- 该元素设置了项目脚本源码目录,该目录和源码目录不同:绝大多数情况下,该目录下的内容 会被拷贝到输出目录(因为脚本是被解释的,而不是被编译的)。 -->
     336 
     337         <scriptSourceDirectory />
     338 
     339         <!-- 该元素设置了项目单元测试使用的源码目录,当测试项目的时候,构建系统会编译目录里的源码。该路径是相对于pom.xml的相对路径。 -->
     340 
     341         <testSourceDirectory />
     342 
     343         <!-- 被编译过的应用程序class文件存放的目录。 -->
     344 
     345         <outputDirectory />
     346 
     347         <!-- 被编译过的测试class文件存放的目录。 -->
     348 
     349         <testOutputDirectory />
     350 
     351         <!-- 使用来自该项目的一系列构建扩展 -->
     352 
     353         <extensions>
     354 
     355             <!-- 描述使用到的构建扩展。 -->
     356 
     357             <extension>
     358 
     359                 <!-- 构建扩展的groupId -->
     360 
     361                 <groupId />
     362 
     363                 <!-- 构建扩展的artifactId -->
     364 
     365                 <artifactId />
     366 
     367                 <!-- 构建扩展的版本 -->
     368 
     369                 <version />
     370 
     371             </extension>
     372 
     373         </extensions>
     374 
     375         <!-- 当项目没有规定目标(Maven2 叫做阶段)时的默认值 -->
     376 
     377         <defaultGoal />
     378 
     379         <!-- 这个元素描述了项目相关的所有资源路径列表,例如和项目相关的属性文件,这些资源被包含在最终的打包文件里。 -->
     380 
     381         <resources>
     382 
     383             <!-- 这个元素描述了项目相关或测试相关的所有资源路径 -->
     384 
     385             <resource>
     386 
     387                 <!-- 描述了资源的目标路径。该路径相对target/classes目录(例如${project.build.outputDirectory})。举个例子,如果你想资源在特定的包里(org.apache.maven.messages),你就必须该元素设置为org/apache/maven/messages。然而,如果你只是想把资源放到源码目录结构里,就不需要该配置。 -->
     388 
     389                 <targetPath />
     390 
     391                 <!-- 是否使用参数值代替参数名。参数值取自properties元素或者文件里配置的属性,文件在filters元素里列出。 -->
     392 
     393                 <filtering />
     394 
     395                 <!-- 描述存放资源的目录,该路径相对POM路径 -->
     396 
     397                 <directory />
     398 
     399                 <!-- 包含的模式列表,例如**/*.xml. -->
     400 
     401                 <includes />
     402 
     403                 <!-- 排除的模式列表,例如**/*.xml -->
     404 
     405                 <excludes />
     406 
     407             </resource>
     408 
     409         </resources>
     410 
     411         <!-- 这个元素描述了单元测试相关的所有资源路径,例如和单元测试相关的属性文件。 -->
     412 
     413         <testResources>
     414 
     415             <!-- 这个元素描述了测试相关的所有资源路径,参见build/resources/resource元素的说明 -->
     416 
     417             <testResource>
     418 
     419                 <targetPath />
     420                 <filtering />
     421                 <directory />
     422                 <includes />
     423                 <excludes />
     424 
     425             </testResource>
     426 
     427         </testResources>
     428 
     429         <!-- 构建产生的所有文件存放的目录 -->
     430 
     431         <directory />
     432 
     433         <!-- 产生的构件的文件名,默认值是${artifactId}-${version}。 -->
     434 
     435         <finalName />
     436 
     437         <!-- 当filtering开关打开时,使用到的过滤器属性文件列表 -->
     438 
     439         <filters />
     440 
     441         <!-- 子项目可以引用的默认插件信息。该插件配置项直到被引用时才会被解析或绑定到生命周期。给定插件的任何本地配置都会覆盖这里的配置 -->
     442 
     443         <pluginManagement>
     444 
     445             <!-- 使用的插件列表 。 -->
     446 
     447             <plugins>
     448 
     449                 <!-- plugin元素包含描述插件所需要的信息。 -->
     450 
     451                 <plugin>
     452 
     453                     <!-- 插件在仓库里的group ID -->
     454 
     455                     <groupId />
     456 
     457                     <!-- 插件在仓库里的artifact ID -->
     458 
     459                     <artifactId />
     460 
     461                     <!-- 被使用的插件的版本(或版本范围) -->
     462 
     463                     <version />
     464 
     465                     <!-- 是否从该插件下载Maven扩展(例如打包和类型处理器),由于性能原因,只有在真需要下载时,该元素才被设置成enabled。 -->
     466 
     467                     <extensions />
     468 
     469                     <!-- 在构建生命周期中执行一组目标的配置。每个目标可能有不同的配置。 -->
     470 
     471                     <executions>
     472 
     473                         <!-- execution元素包含了插件执行需要的信息 -->
     474 
     475                         <execution>
     476 
     477                             <!-- 执行目标的标识符,用于标识构建过程中的目标,或者匹配继承过程中需要合并的执行目标 -->
     478 
     479                             <id />
     480 
     481                             <!-- 绑定了目标的构建生命周期阶段,如果省略,目标会被绑定到源数据里配置的默认阶段 -->
     482 
     483                             <phase />
     484 
     485                             <!-- 配置的执行目标 -->
     486 
     487                             <goals />
     488 
     489                             <!-- 配置是否被传播到子POM -->
     490 
     491                             <inherited />
     492 
     493                             <!-- 作为DOM对象的配置 -->
     494 
     495                             <configuration />
     496 
     497                         </execution>
     498 
     499                     </executions>
     500 
     501                     <!-- 项目引入插件所需要的额外依赖 -->
     502 
     503                     <dependencies>
     504 
     505                         <!-- 参见dependencies/dependency元素 -->
     506 
     507                         <dependency>
     508 
     509 
     510 
     511                         </dependency>
     512 
     513                     </dependencies>
     514 
     515                     <!-- 任何配置是否被传播到子项目 -->
     516 
     517                     <inherited />
     518 
     519                     <!-- 作为DOM对象的配置 -->
     520 
     521                     <configuration />
     522 
     523                 </plugin>
     524 
     525             </plugins>
     526 
     527         </pluginManagement>
     528 
     529         <!-- 使用的插件列表 -->
     530 
     531         <plugins>
     532 
     533             <!-- 参见build/pluginManagement/plugins/plugin元素 -->
     534 
     535             <plugin>
     536 
     537                 <groupId />
     538                 <artifactId />
     539                 <version />
     540                 <extensions />
     541 
     542                 <executions>
     543 
     544                     <execution>
     545 
     546                         <id />
     547                         <phase />
     548                         <goals />
     549                         <inherited />
     550                         <configuration />
     551 
     552                     </execution>
     553 
     554                 </executions>
     555 
     556                 <dependencies>
     557 
     558                     <!-- 参见dependencies/dependency元素 -->
     559 
     560                     <dependency>
     561 
     562 
     563 
     564                     </dependency>
     565 
     566                 </dependencies>
     567 
     568                 <goals />
     569                 <inherited />
     570                 <configuration />
     571 
     572             </plugin>
     573 
     574         </plugins>
     575 
     576     </build>
     577 
     578     <!-- 在列的项目构建profile,如果被激活,会修改构建处理 -->
     579 
     580     <profiles>
     581 
     582         <!-- 根据环境参数或命令行参数激活某个构建处理 -->
     583 
     584         <profile>
     585 
     586             <!-- 构建配置的唯一标识符。即用于命令行激活,也用于在继承时合并具有相同标识符的profile。 -->
     587 
     588             <id />
     589 
     590             <!-- 自动触发profile的条件逻辑。Activation是profile的开启钥匙。profile的力量来自于它 能够在某些特定的环境中自动使用某些特定的值;这些环境通过activation元素指定。activation元素并不是激活profile的唯一方式。 -->
     591 
     592             <activation>
     593 
     594                 <!-- profile默认是否激活的标志 -->
     595 
     596                 <activeByDefault />
     597 
     598                 <!-- 当匹配的jdk被检测到,profile被激活。例如,1.4激活JDK1.4,1.4.0_2,而!1.4激活所有版本不是以1.4开头的JDK。 -->
     599 
     600                 <jdk />
     601 
     602                 <!-- 当匹配的操作系统属性被检测到,profile被激活。os元素可以定义一些操作系统相关的属性。 -->
     603 
     604                 <os>
     605 
     606                     <!-- 激活profile的操作系统的名字 -->
     607 
     608                     <name> Windows XP </name>
     609 
     610                     <!-- 激活profile的操作系统所属家族(如 'windows') -->
     611 
     612                     <family> Windows </family>
     613 
     614                     <!-- 激活profile的操作系统体系结构 -->
     615 
     616                     <arch> x86 </arch>
     617 
     618                     <!-- 激活profile的操作系统版本 -->
     619 
     620                     <version> 5.1.2600 </version>
     621 
     622                 </os>
     623 
     624                 <!-- 如果Maven检测到某一个属性(其值可以在POM中通过${名称}引用),其拥有对应的名称和值,Profile就会被激活。如果值 
     625                     字段是空的,那么存在属性名称字段就会激活profile,否则按区分大小写方式匹配属性值字段 -->
     626 
     627                 <property>
     628 
     629                     <!-- 激活profile的属性的名称 -->
     630 
     631                     <name> mavenVersion </name>
     632 
     633                     <!-- 激活profile的属性的值 -->
     634 
     635                     <value> 2.0.3 </value>
     636 
     637                 </property>
     638 
     639                 <!-- 提供一个文件名,通过检测该文件的存在或不存在来激活profile。missing检查文件是否存在,如果不存在则激活 profile。另一方面,exists则会检查文件是否存在,如果存在则激活profile。 -->
     640 
     641                 <file>
     642 
     643                     <!-- 如果指定的文件存在,则激活profile。 -->
     644 
     645                     <exists> /usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/ </exists>
     646 
     647                     <!-- 如果指定的文件不存在,则激活profile。 -->
     648 
     649                     <missing> /usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/ </missing>
     650 
     651                 </file>
     652 
     653             </activation>
     654 
     655             <!-- 构建项目所需要的信息。参见build元素 -->
     656 
     657             <build>
     658 
     659                 <defaultGoal />
     660 
     661                 <resources>
     662 
     663                     <resource>
     664 
     665                         <targetPath />
     666                         <filtering />
     667                         <directory />
     668                         <includes />
     669                         <excludes />
     670 
     671                     </resource>
     672 
     673                 </resources>
     674 
     675                 <testResources>
     676 
     677                     <testResource>
     678 
     679                         <targetPath />
     680                         <filtering />
     681                         <directory />
     682                         <includes />
     683                         <excludes />
     684 
     685                     </testResource>
     686 
     687                 </testResources>
     688 
     689                 <directory />
     690                 <finalName />
     691                 <filters />
     692 
     693                 <pluginManagement>
     694 
     695                     <plugins>
     696 
     697                         <!-- 参见build/pluginManagement/plugins/plugin元素 -->
     698 
     699                         <plugin>
     700 
     701                             <groupId />
     702                             <artifactId />
     703                             <version />
     704                             <extensions />
     705 
     706                             <executions>
     707 
     708                                 <execution>
     709 
     710                                     <id />
     711                                     <phase />
     712                                     <goals />
     713                                     <inherited />
     714                                     <configuration />
     715 
     716                                 </execution>
     717 
     718                             </executions>
     719 
     720                             <dependencies>
     721 
     722                                 <!-- 参见dependencies/dependency元素 -->
     723 
     724                                 <dependency>
     725 
     726 
     727 
     728                                 </dependency>
     729 
     730                             </dependencies>
     731 
     732                             <goals />
     733                             <inherited />
     734                             <configuration />
     735 
     736                         </plugin>
     737 
     738                     </plugins>
     739 
     740                 </pluginManagement>
     741 
     742                 <plugins>
     743 
     744                     <!-- 参见build/pluginManagement/plugins/plugin元素 -->
     745 
     746                     <plugin>
     747 
     748                         <groupId />
     749                         <artifactId />
     750                         <version />
     751                         <extensions />
     752 
     753                         <executions>
     754 
     755                             <execution>
     756 
     757                                 <id />
     758                                 <phase />
     759                                 <goals />
     760                                 <inherited />
     761                                 <configuration />
     762 
     763                             </execution>
     764 
     765                         </executions>
     766 
     767                         <dependencies>
     768 
     769                             <!-- 参见dependencies/dependency元素 -->
     770 
     771                             <dependency>
     772 
     773 
     774 
     775                             </dependency>
     776 
     777                         </dependencies>
     778 
     779                         <goals />
     780                         <inherited />
     781                         <configuration />
     782 
     783                     </plugin>
     784 
     785                 </plugins>
     786 
     787             </build>
     788 
     789             <!-- 模块(有时称作子项目) 被构建成项目的一部分。列出的每个模块元素是指向该模块的目录的相对路径 -->
     790 
     791             <modules />
     792 
     793             <!-- 发现依赖和扩展的远程仓库列表。 -->
     794 
     795             <repositories>
     796 
     797                 <!-- 参见repositories/repository元素 -->
     798 
     799                 <repository>
     800 
     801                     <releases>
     802 
     803                         <enabled />
     804                         <updatePolicy />
     805                         <checksumPolicy />
     806 
     807                     </releases>
     808 
     809                     <snapshots>
     810 
     811                         <enabled />
     812                         <updatePolicy />
     813                         <checksumPolicy />
     814 
     815                     </snapshots>
     816 
     817                     <id />
     818                     <name />
     819                     <url />
     820                     <layout />
     821 
     822                 </repository>
     823 
     824             </repositories>
     825 
     826             <!-- 发现插件的远程仓库列表,这些插件用于构建和报表 -->
     827 
     828             <pluginRepositories>
     829 
     830                 <!-- 包含需要连接到远程插件仓库的信息.参见repositories/repository元素 -->
     831 
     832                 <pluginRepository>
     833 
     834                     <releases>
     835 
     836                         <enabled />
     837                         <updatePolicy />
     838                         <checksumPolicy />
     839 
     840                     </releases>
     841 
     842                     <snapshots>
     843 
     844                         <enabled />
     845                         <updatePolicy />
     846                         <checksumPolicy />
     847 
     848                     </snapshots>
     849 
     850                     <id />
     851                     <name />
     852                     <url />
     853                     <layout />
     854 
     855                 </pluginRepository>
     856 
     857             </pluginRepositories>
     858 
     859             <!-- 该元素描述了项目相关的所有依赖。 这些依赖组成了项目构建过程中的一个个环节。它们自动从项目定义的仓库中下载。要获取更多信息,请看项目依赖机制。 -->
     860 
     861             <dependencies>
     862 
     863                 <!-- 参见dependencies/dependency元素 -->
     864 
     865                 <dependency>
     866 
     867 
     868 
     869                 </dependency>
     870 
     871             </dependencies>
     872 
     873             <!-- 不赞成使用. 现在Maven忽略该元素. -->
     874 
     875             <reports />
     876 
     877             <!-- 该元素包括使用报表插件产生报表的规范。当用户执行“mvn site”,这些报表就会运行。 在页面导航栏能看到所有报表的链接。参见reporting元素 -->
     878 
     879             <reporting>
     880 
     881 
     882 
     883             </reporting>
     884 
     885             <!-- 参见dependencyManagement元素 -->
     886 
     887             <dependencyManagement>
     888 
     889                 <dependencies>
     890 
     891                     <!-- 参见dependencies/dependency元素 -->
     892 
     893                     <dependency>
     894 
     895 
     896 
     897                     </dependency>
     898 
     899                 </dependencies>
     900 
     901             </dependencyManagement>
     902 
     903             <!-- 参见distributionManagement元素 -->
     904 
     905             <distributionManagement>
     906 
     907 
     908 
     909             </distributionManagement>
     910 
     911             <!-- 参见properties元素 -->
     912 
     913             <properties />
     914 
     915         </profile>
     916 
     917     </profiles>
     918 
     919     <!-- 模块(有时称作子项目) 被构建成项目的一部分。列出的每个模块元素是指向该模块的目录的相对路径 -->
     920 
     921     <modules />
     922 
     923     <!-- 发现依赖和扩展的远程仓库列表。 -->
     924 
     925     <repositories>
     926 
     927         <!-- 包含需要连接到远程仓库的信息 -->
     928 
     929         <repository>
     930 
     931             <!-- 如何处理远程仓库里发布版本的下载 -->
     932 
     933             <releases>
     934 
     935                 <!-- true或者false表示该仓库是否为下载某种类型构件(发布版,快照版)开启。 -->
     936 
     937                 <enabled />
     938 
     939                 <!-- 该元素指定更新发生的频率。Maven会比较本地POM和远程POM的时间戳。这里的选项是:always(一直),daily(默认,每日),interval:X(这里X是以分钟为单位的时间间隔),或者never(从不)。 -->
     940 
     941                 <updatePolicy />
     942 
     943                 <!-- 当Maven验证构件校验文件失败时该怎么做:ignore(忽略),fail(失败),或者warn(警告)。 -->
     944 
     945                 <checksumPolicy />
     946 
     947             </releases>
     948 
     949             <!-- 如何处理远程仓库里快照版本的下载。有了releases和snapshots这两组配置,POM就可以在每个单独的仓库中,为每种类型的构件采取不同的策略。例如,可能有人会决定只为开发目的开启对快照版本下载的支持。参见repositories/repository/releases元素 -->
     950 
     951             <snapshots>
     952 
     953                 <enabled />
     954                 <updatePolicy />
     955                 <checksumPolicy />
     956 
     957             </snapshots>
     958 
     959             <!-- 远程仓库唯一标识符。可以用来匹配在settings.xml文件里配置的远程仓库 -->
     960 
     961             <id> banseon-repository-proxy </id>
     962 
     963             <!-- 远程仓库名称 -->
     964 
     965             <name> banseon-repository-proxy </name>
     966 
     967             <!-- 远程仓库URL,按protocol://hostname/path形式 -->
     968 
     969             <url> http://192.168.1.169:9999/repository/ </url>
     970 
     971             <!-- 用于定位和排序构件的仓库布局类型-可以是default(默认)或者legacy(遗留)。Maven 2为其仓库提供了一个默认的布局;然而,Maven 
     972                 1.x有一种不同的布局。我们可以使用该元素指定布局是default(默认)还是legacy(遗留)。 -->
     973 
     974             <layout> default </layout>
     975 
     976         </repository>
     977 
     978     </repositories>
     979 
     980     <!-- 发现插件的远程仓库列表,这些插件用于构建和报表 -->
     981 
     982     <pluginRepositories>
     983 
     984         <!-- 包含需要连接到远程插件仓库的信息.参见repositories/repository元素 -->
     985 
     986         <pluginRepository>
     987 
     988 
     989 
     990         </pluginRepository>
     991 
     992     </pluginRepositories>
     993 
     994 
     995 
     996     <!-- 该元素描述了项目相关的所有依赖。 这些依赖组成了项目构建过程中的一个个环节。它们自动从项目定义的仓库中下载。要获取更多信息,请看项目依赖机制。 -->
     997 
     998     <dependencies>
     999 
    1000         <dependency>
    1001 
    1002             <!-- 依赖的group ID -->
    1003 
    1004             <groupId> org.apache.maven </groupId>
    1005 
    1006             <!-- 依赖的artifact ID -->
    1007 
    1008             <artifactId> maven-artifact </artifactId>
    1009 
    1010             <!-- 依赖的版本号。 在Maven 2里, 也可以配置成版本号的范围。 -->
    1011 
    1012             <version> 3.8.1 </version>
    1013 
    1014             <!-- 依赖类型,默认类型是jar。它通常表示依赖的文件的扩展名,但也有例外。一个类型可以被映射成另外一个扩展名或分类器。类型经常和使用的打包方式对应,尽管这也有例外。一些类型的例子:jar,war,ejb-client和test-jar。如果设置extensions为 
    1015                 true,就可以在plugin里定义新的类型。所以前面的类型的例子不完整。 -->
    1016 
    1017             <type> jar </type>
    1018 
    1019             <!-- 依赖的分类器。分类器可以区分属于同一个POM,但不同构建方式的构件。分类器名被附加到文件名的版本号后面。例如,如果你想要构建两个单独的构件成JAR,一个使用Java 
    1020                 1.4编译器,另一个使用Java 6编译器,你就可以使用分类器来生成两个单独的JAR构件。 -->
    1021 
    1022             <classifier></classifier>
    1023 
    1024             <!-- 依赖范围。在项目发布过程中,帮助决定哪些构件被包括进来。欲知详情请参考依赖机制。 - compile :默认范围,用于编译 - provided:类似于编译,但支持你期待jdk或者容器提供,类似于classpath 
    1025                 - runtime: 在执行时需要使用 - test: 用于test任务时使用 - system: 需要外在提供相应的元素。通过systemPath来取得 
    1026                 - systemPath: 仅用于范围为system。提供相应的路径 - optional: 当项目自身被依赖时,标注依赖是否传递。用于连续依赖时使用 -->
    1027 
    1028             <scope> test </scope>
    1029 
    1030             <!-- 仅供system范围使用。注意,不鼓励使用这个元素,并且在新的版本中该元素可能被覆盖掉。该元素为依赖规定了文件系统上的路径。需要绝对路径而不是相对路径。推荐使用属性匹配绝对路径,例如${java.home}。 -->
    1031 
    1032             <systemPath></systemPath>
    1033 
    1034             <!-- 当计算传递依赖时, 从依赖构件列表里,列出被排除的依赖构件集。即告诉maven你只依赖指定的项目,不依赖项目的依赖。此元素主要用于解决版本冲突问题 -->
    1035 
    1036             <exclusions>
    1037 
    1038                 <exclusion>
    1039 
    1040                     <artifactId> spring-core </artifactId>
    1041 
    1042                     <groupId> org.springframework </groupId>
    1043 
    1044                 </exclusion>
    1045 
    1046             </exclusions>
    1047 
    1048             <!-- 可选依赖,如果你在项目B中把C依赖声明为可选,你就需要在依赖于B的项目(例如项目A)中显式的引用对C的依赖。可选依赖阻断依赖的传递性。 -->
    1049 
    1050             <optional>true</optional>
    1051 
    1052         </dependency>
    1053 
    1054     </dependencies>
    1055 
    1056     <!-- 不赞成使用. 现在Maven忽略该元素. -->
    1057 
    1058     <reports></reports>
    1059 
    1060     <!-- 该元素描述使用报表插件产生报表的规范。当用户执行“mvn site”,这些报表就会运行。 在页面导航栏能看到所有报表的链接。 -->
    1061 
    1062     <reporting>
    1063 
    1064         <!-- true,则,网站不包括默认的报表。这包括“项目信息”菜单中的报表。 -->
    1065 
    1066         <excludeDefaults />
    1067 
    1068         <!-- 所有产生的报表存放到哪里。默认值是${project.build.directory}/site。 -->
    1069 
    1070         <outputDirectory />
    1071 
    1072         <!-- 使用的报表插件和他们的配置。 -->
    1073 
    1074         <plugins>
    1075 
    1076             <!-- plugin元素包含描述报表插件需要的信息 -->
    1077 
    1078             <plugin>
    1079 
    1080                 <!-- 报表插件在仓库里的group ID -->
    1081 
    1082                 <groupId />
    1083 
    1084                 <!-- 报表插件在仓库里的artifact ID -->
    1085 
    1086                 <artifactId />
    1087 
    1088                 <!-- 被使用的报表插件的版本(或版本范围) -->
    1089 
    1090                 <version />
    1091 
    1092                 <!-- 任何配置是否被传播到子项目 -->
    1093 
    1094                 <inherited />
    1095 
    1096                 <!-- 报表插件的配置 -->
    1097 
    1098                 <configuration />
    1099 
    1100                 <!-- 一组报表的多重规范,每个规范可能有不同的配置。一个规范(报表集)对应一个执行目标 。例如,有1,2,3,4,5,6,7,8,9个报表。1,2,5构成A报表集,对应一个执行目标。2,5,8构成B报表集,对应另一个执行目标 -->
    1101 
    1102                 <reportSets>
    1103 
    1104                     <!-- 表示报表的一个集合,以及产生该集合的配置 -->
    1105 
    1106                     <reportSet>
    1107 
    1108                         <!-- 报表集合的唯一标识符,POM继承时用到 -->
    1109 
    1110                         <id />
    1111 
    1112                         <!-- 产生报表集合时,被使用的报表的配置 -->
    1113 
    1114                         <configuration />
    1115 
    1116                         <!-- 配置是否被继承到子POMs -->
    1117 
    1118                         <inherited />
    1119 
    1120                         <!-- 这个集合里使用到哪些报表 -->
    1121 
    1122                         <reports />
    1123 
    1124                     </reportSet>
    1125 
    1126                 </reportSets>
    1127 
    1128             </plugin>
    1129 
    1130         </plugins>
    1131 
    1132     </reporting>
    1133 
    1134     <!-- 继承自该项目的所有子项目的默认依赖信息。这部分的依赖信息不会被立即解析,而是当子项目声明一个依赖(必须描述group ID和artifact 
    1135         ID信息),如果group ID和artifact ID以外的一些信息没有描述,则通过group ID和artifact ID匹配到这里的依赖,并使用这里的依赖信息。 -->
    1136 
    1137     <dependencyManagement>
    1138 
    1139         <dependencies>
    1140 
    1141             <!-- 参见dependencies/dependency元素 -->
    1142 
    1143             <dependency>
    1144 
    1145 
    1146 
    1147             </dependency>
    1148 
    1149         </dependencies>
    1150 
    1151     </dependencyManagement>
    1152 
    1153     <!-- 项目分发信息,在执行mvn deploy后表示要发布的位置。有了这些信息就可以把网站部署到远程服务器或者把构件部署到远程仓库。 -->
    1154 
    1155     <distributionManagement>
    1156 
    1157         <!-- 部署项目产生的构件到远程仓库需要的信息 -->
    1158 
    1159         <repository>
    1160 
    1161             <!-- 是分配给快照一个唯一的版本号(由时间戳和构建流水号)?还是每次都使用相同的版本号?参见repositories/repository元素 -->
    1162 
    1163             <uniqueVersion />
    1164 
    1165             <id> banseon-maven2 </id>
    1166 
    1167             <name> banseon maven2 </name>
    1168 
    1169             <url> file://${basedir}/target/deploy </url>
    1170 
    1171             <layout />
    1172 
    1173         </repository>
    1174 
    1175         <!-- 构件的快照部署到哪里?如果没有配置该元素,默认部署到repository元素配置的仓库,参见distributionManagement/repository元素 -->
    1176 
    1177         <snapshotRepository>
    1178 
    1179             <uniqueVersion />
    1180 
    1181             <id> banseon-maven2 </id>
    1182 
    1183             <name> Banseon-maven2 Snapshot Repository </name>
    1184 
    1185             <url> scp://svn.baidu.com/banseon:/usr/local/maven-snapshot </url>
    1186 
    1187             <layout />
    1188 
    1189         </snapshotRepository>
    1190 
    1191         <!-- 部署项目的网站需要的信息 -->
    1192 
    1193         <site>
    1194 
    1195             <!-- 部署位置的唯一标识符,用来匹配站点和settings.xml文件里的配置 -->
    1196 
    1197             <id> banseon-site </id>
    1198 
    1199             <!-- 部署位置的名称 -->
    1200 
    1201             <name> business api website </name>
    1202 
    1203             <!-- 部署位置的URL,按protocol://hostname/path形式 -->
    1204 
    1205             <url> 
    1206 
    1207 scp://svn.baidu.com/banseon:/var/www/localhost/banseon-web 
    1208 
    1209 </url>
    1210 
    1211         </site>
    1212 
    1213         <!-- 项目下载页面的URL。如果没有该元素,用户应该参考主页。使用该元素的原因是:帮助定位那些不在仓库里的构件(由于license限制)。 -->
    1214 
    1215         <downloadUrl />
    1216 
    1217         <!-- 如果构件有了新的group ID和artifact ID(构件移到了新的位置),这里列出构件的重定位信息。 -->
    1218 
    1219         <relocation>
    1220 
    1221             <!-- 构件新的group ID -->
    1222 
    1223             <groupId />
    1224 
    1225             <!-- 构件新的artifact ID -->
    1226 
    1227             <artifactId />
    1228 
    1229             <!-- 构件新的版本号 -->
    1230 
    1231             <version />
    1232 
    1233             <!-- 显示给用户的,关于移动的额外信息,例如原因。 -->
    1234 
    1235             <message />
    1236 
    1237         </relocation>
    1238 
    1239         <!-- 给出该构件在远程仓库的状态。不得在本地项目中设置该元素,因为这是工具自动更新的。有效的值有:none(默认),converted(仓库管理员从Maven 
    1240             1 POM转换过来),partner(直接从伙伴Maven 2仓库同步过来),deployed(从Maven 2实例部署),verified(被核实时正确的和最终的)。 -->
    1241 
    1242         <status />
    1243 
    1244     </distributionManagement>
    1245 
    1246     <!-- 以值替代名称,Properties可以在整个POM中使用,也可以作为触发条件(见settings.xml配置文件里activation元素的说明)。格式是<name>value</name>。 -->
    1247 
    1248     <properties />
    1249 
    1250 </project> 
    View Code
  • 相关阅读:
    IDEA 实用功能Auto Import:自动优化导包(自动删除、导入包)
    idea 设置主题
    MySql where 后面使用函数导致索引失效问题
    IDEA报错,注解标红,提示Cannot resolve symbol xxx
    分批更新list
    java.lang.ArithmeticException: Rounding necessary
    Java selenium通过JS直接进行赋值给日期框
    postman接口测试之获取响应数据
    Jenkins集成allure测试报告
    Jenkins配置邮件通知
  • 原文地址:https://www.cnblogs.com/sxdcgaq8080/p/5586670.html
Copyright © 2011-2022 走看看