maven pom文件詳解

 <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>[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是以分鐘爲單位的時間間隔),或者never(從不)。-->  
 886 
 887      <updatePolicy/>   
 888 
 889      <!--當Maven驗證構件校驗文件失敗時該怎麼做:ignore(忽略),fail(失敗),或者warn(警告)。-->  
 890 
 891      <checksumPolicy/>  
 892 
 893     </releases>   
 894 
 895     <!--如何處理遠程倉庫裏快照版本的下載。有了releases和snapshots這兩組配置,POM就可以在每個單獨的倉庫中,爲每種類型的構件採取不同的策略。例如,可能有人會決定只爲開發目的開啓對快照版本下載的支持。參見repositories/repository/releases元素-->  
 896 
 897     <snapshots>  
 898 
 899      <enabled/><updatePolicy/><checksumPolicy/>  
 900 
 901     </snapshots>   
 902 
 903     <!--遠程倉庫唯一標識符。可以用來匹配在settings.xml文件裏配置的遠程倉庫-->  
 904 
 905     <id>banseon-repository-proxy</id>    
 906 
 907     <!--遠程倉庫名稱-->  
 908 
 909              <name>banseon-repository-proxy</name>    
 910 
 911              <!--遠程倉庫URL,按protocol://hostname/path形式-->  
 912 
 913              <url>http://192.168.1.169:9999/repository/</url>    
 914 
 915              <!--用於定位和排序構件的倉庫佈局類型-可以是default(默認)或者legacy(遺留)。Maven 2爲其倉庫提供了一個默認的佈局;然而,Maven 1.x有一種不同的佈局。我們可以使用該元素指定佈局是default(默認)還是legacy(遺留)。-->  
 916 
 917              <layout>default</layout>              
 918 
 919          </repository>    
 920 
 921      </repositories>   
 922 
 923      <!--發現插件的遠程倉庫列表,這些插件用於構建和報表-->  
 924 
 925      <pluginRepositories>   
 926 
 927       <!--包含需要連接到遠程插件倉庫的信息.參見repositories/repository元素-->  
 928 
 929    <pluginRepository>  
 930 
 931       
 932 
 933    </pluginRepository>  
 934 
 935   </pluginRepositories>   
 936 
 937        
 938 
 939      <!--該元素描述了項目相關的所有依賴。 這些依賴組成了項目構建過程中的一個個環節。它們自動從項目定義的倉庫中下載。要獲取更多信息,請看項目依賴機制。-->    
 940 
 941      <dependencies>    
 942 
 943          <dependency>  
 944 
 945     <!--依賴的group ID-->  
 946 
 947              <groupId>org.apache.maven</groupId>    
 948 
 949              <!--依賴的artifact ID-->  
 950 
 951              <artifactId>maven-artifact</artifactId>    
 952 
 953              <!--依賴的版本號。 在Maven 2裏, 也可以配置成版本號的範圍。-->  
 954 
 955              <version>3.8.1</version>    
 956 
 957              <!--依賴類型,默認類型是jar。它通常表示依賴的文件的擴展名,但也有例外。一個類型可以被映射成另外一個擴展名或分類器。類型經常和使用的打包方式對應,儘管這也有例外。一些類型的例子:jar,war,ejb-client和test-jar。如果設置extensions爲 true,就可以在plugin裏定義新的類型。所以前面的類型的例子不完整。-->  
 958 
 959              <type>jar</type>   
 960 
 961              <!--依賴的分類器。分類器可以區分屬於同一個POM,但不同構建方式的構件。分類器名被附加到文件名的版本號後面。例如,如果你想要構建兩個單獨的構件成JAR,一個使用Java 1.4編譯器,另一個使用Java 6編譯器,你就可以使用分類器來生成兩個單獨的JAR構件。-->  
 962 
 963              <classifier></classifier>   
 964 
 965              <!--依賴範圍。在項目發佈過程中,幫助決定哪些構件被包括進來。欲知詳情請參考依賴機制。   
 966 
 967                  - compile :默認範圍,用於編譯     
 968 
 969                  - provided:類似於編譯,但支持你期待jdk或者容器提供,類似於classpath     
 970 
 971                  - runtime: 在執行時需要使用     
 972 
 973                  - test:    用於test任務時使用     
 974 
 975                  - system: 需要外在提供相應的元素。通過systemPath來取得     
 976 
 977                  - systemPath: 僅用於範圍爲system。提供相應的路徑     
 978 
 979                  - optional:   當項目自身被依賴時,標註依賴是否傳遞。用於連續依賴時使用-->    
 980 
 981              <scope>test</scope>       
 982 
 983              <!--僅供system範圍使用。注意,不鼓勵使用這個元素,並且在新的版本中該元素可能被覆蓋掉。該元素爲依賴規定了文件系統上的路徑。需要絕對路徑而不是相對路徑。推薦使用屬性匹配絕對路徑,例如${java.home}。-->   
 984 
 985              <systemPath></systemPath>    
 986 
 987              <!--當計算傳遞依賴時, 從依賴構件列表裏,列出被排除的依賴構件集。即告訴maven你只依賴指定的項目,不依賴項目的依賴。此元素主要用於解決版本衝突問題-->   
 988 
 989              <exclusions>  
 990 
 991               <exclusion>    
 992 
 993                      <artifactId>spring-core</artifactId>    
 994 
 995                      <groupId>org.springframework</groupId>    
 996 
 997                  </exclusion>    
 998 
 999              </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              <url>file://${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 
1137              <url>scp://svn.baidu.com/banseon:/usr/local/maven-snapshot</url>    
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 
1159                  scp://svn.baidu.com/banseon:/var/www/localhost/banseon-web     
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>  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章