0001
<project xmlns="http://maven.apache.org/POM/4.0.0"
0002
0003
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
0004
0005
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd ">
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
<url> http://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
<url> http://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> [email protected] </post>
0158
0159
<!-- 訂閱郵件的位址或連結,如果是郵件位址,建立文檔時,mailto: 連結會被自動建立 -->
0160
0161
<subscribe> [email protected] </subscribe>
0162
0163
<!-- 取消訂閱郵件的位址或連結,如果是郵件位址,建立文檔時,mailto: 連結會被自動建立 -->
0164
0165
<unsubscribe> [email protected] </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> [email protected] </email>
0194
0195
<!-- 項目開發者的首頁的URL -->
0196
0197
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
<organizationUrl> http://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
0261
<url> http://www.baidu.com/banseon/LICENSE-2.0.txt </url>
0262
0263
<!-- 項目分發的主要方式:
0264
0265
repo,可以從Maven庫下載下傳
0266
0267
manual, 使用者必須手動下載下傳和安裝依賴 -->
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
0287
scm:svn:http://svn.baidu.com/banseon/maven/banseon/banseon-maven2-trunk(dao-trunk)
0288
0289
</connection>
0290
0291
<!-- 給開發者使用的,類似connection元素。即該連接配接不僅僅隻讀 -->
0292
0293
<developerConnection>
0294
0295
scm:svn:http://svn.baidu.com/banseon/maven/banseon/dao-trunk
0296
0297
</developerConnection>
0298
0299
<!-- 目前代碼的标簽,在開發階段預設為HEAD -->
0300
0301
<tag />
0302
0303
<!-- 指向項目的可浏覽SCM庫(例如ViewVC或者Fisheye)的URL。 -->
0304
0305
<url> http://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
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
0358
0359
<!-- 建構擴充的artifactId -->
0360
0361
0362
0363
<!-- 建構擴充的版本 -->
0364
0365
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
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
0448
0449
<!-- 插件在倉庫裡的artifact ID -->
0450
0451
0452
0453
<!-- 被使用的插件的版本(或版本範圍) -->
0454
0455
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
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
0510
0511
0512
0513
0514
0515
</plugin>
0516
0517
</plugins>
0518
0519
</pluginManagement>
0520
0521
<!-- 使用的插件清單 -->
0522
0523
0524
0525
<!-- 參見build/pluginManagement/plugins/plugin元素 -->
0526
0527
0528
0529
<groupId /><artifactId /><version /><extensions />
0530
0531
0532
0533
0534
0535
<id /><phase /><goals /><inherited /><configuration />
0536
0537
0538
0539
0540
0541
0542
0543
0544
0545
0546
0547
0548
0549
0550
0551
0552
0553
<goals /><inherited /><configuration />
0554
0555
0556
0557
0558
0559
</build>
0560
0561
<!-- 在列的項目建構profile,如果被激活,會修改建構處理 -->
0562
0563
<profiles>
0564
0565
<!-- 根據環境參數或指令行參數激活某個建構處理 -->
0566
0567
<profile>
0568
0569
<!-- 建構配置的唯一辨別符。即用于指令行激活,也用于在繼承時合并具有相同辨別符的profile。 -->
0570
0571
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
0627
profile。另一方面,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
0646
0647
0648
0649
0650
0651
0652
0653
0654
0655
0656
0657
0658
0659
0660
0661
0662
0663
0664
0665
0666
0667
0668
0669
<directory /><finalName /><filters />
0670
0671
0672
0673
0674
0675
0676
0677
0678
0679
0680
0681
0682
0683
0684
0685
0686
0687
0688
0689
0690
0691
0692
0693
0694
0695
0696
0697
0698
0699
0700
0701
0702
0703
0704
0705
0706
0707
0708
0709
0710
0711
0712
0713
0714
0715
0716
0717
0718
0719
0720
0721
0722
0723
0724
0725
0726
0727
0728
0729
0730
0731
0732
0733
0734
0735
0736
0737
0738
0739
0740
0741
0742
0743
0744
0745
0746
0747
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
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
0788
0789
0790
0791
0792
0793
0794
0795
0796
0797
0798
0799
0800
0801
</pluginRepository>
0802
0803
</pluginRepositories>
0804
0805
<!-- 該元素描述了項目相關的所有依賴。 這些依賴組成了項目建構過程中的一個個環節。它們自動從項目定義的倉庫中下載下傳。要擷取更多資訊,請看項目依賴機制。 -->
0806
0807
0808
0809
0810
0811
0812
0813
0814
0815
0816
0817
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
0836
0837
0838
0839
0840
0841
0842
0843
0844
0845
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
0868
0869
0870
0871
0872
0873
<!-- 包含需要連接配接到遠端倉庫的資訊 -->
0874
0875
0876
0877
<!-- 如何處理遠端倉庫裡釋出版本的下載下傳 -->
0878
0879
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
0894
0895
<!-- 如何處理遠端倉庫裡快照版本的下載下傳。有了releases和snapshots這兩組配置,POM就可以在每個單獨的倉庫中,為每種類型的構件采取不同的政策。例如,可能有人會決定隻為開發目的開啟對快照版本下載下傳的支援。參見repositories/repository/releases元素 -->
0896
0897
0898
0899
0900
0901
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
0913
<url> http://192.168.1.169:9999/repository/ </url>
0914
0915
<!-- 用于定位和排序構件的倉庫布局類型-可以是default(預設)或者legacy(遺留)。Maven 2為其倉庫提供了一個預設的布局;然而,Maven 1.x有一種不同的布局。我們可以使用該元素指定布局是default(預設)還是legacy(遺留)。 -->
0916
0917
<layout> default </layout>
0918
0919
0920
0921
0922
0923
0924
0925
0926
0927
0928
0929
0930
0931
0932
0933
0934
0935
0936
0937
0938
0939
0940
0941
0942
0943
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
1006
1007
1008
1009
1010
1011
<reports></reports>
1012
1013
<!-- 該元素描述使用報表插件産生報表的規範。當使用者執行“mvn site”,這些報表就會運作。 在頁面導航欄能看到所有報表的連結。 -->
1014
1015
1016
1017
<!-- true,則,網站不包括預設的報表。這包括“項目資訊”菜單中的報表。 -->
1018
1019
<excludeDefaults />
1020
1021
<!-- 所有産生的報表存放到哪裡。預設值是${project.build.directory}/site。 -->
1022
1023
1024
1025
<!-- 使用的報表插件和他們的配置。 -->
1026
1027
1028
1029
<!-- plugin元素包含描述報表插件需要的資訊 -->
1030
1031
1032
1033
<!-- 報表插件在倉庫裡的group ID -->
1034
1035
1036
1037
<!-- 報表插件在倉庫裡的artifact ID -->
1038
1039
1040
1041
<!-- 被使用的報表插件的版本(或版本範圍) -->
1042
1043
1044
1045
1046
1047
1048
1049
<!-- 報表插件的配置 -->
1050
1051
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
1064
1065
<!-- 産生報表集合時,被使用的報表的配置 -->
1066
1067
1068
1069
<!-- 配置是否被繼承到子POMs -->
1070
1071
1072
1073
<!-- 這個集合裡使用到哪些報表 -->
1074
1075
1076
1077
</reportSet>
1078
1079
</reportSets>
1080
1081
1082
1083
1084
1085
1086
1087
<!-- 繼承自該項目的所有子項目的預設依賴資訊。這部分的依賴資訊不會被立即解析,而是當子項目聲明一個依賴(必須描述group ID和artifact ID資訊),如果group ID和artifact ID以外的一些資訊沒有描述,則通過group ID和artifact ID比對到這裡的依賴,并使用這裡的依賴資訊。 -->
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
<!-- 項目分發資訊,在執行mvn deploy後表示要釋出的位置。有了這些資訊就可以把網站部署到遠端伺服器或者把構件部署到遠端倉庫。 -->
1106
1107
1108
1109
<!-- 部署項目産生的構件到遠端倉庫需要的資訊 -->
1110
1111
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
1126
1127
<!-- 構件的快照部署到哪裡?如果沒有配置該元素,預設部署到repository元素配置的倉庫,參見distributionManagement/repository元素 -->
1128
1129
<snapshotRepository>
1130
1131
1132
1133
1134
1135
<name> Banseon-maven2 Snapshot Repository </name>
1136
1137
<url> scp://svn.baidu.com/banseon:/usr/local/maven-snapshot </url>
1138
1139
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
1176
1177
<!-- 構件新的artifact ID -->
1178
1179
1180
1181
<!-- 構件新的版本号 -->
1182
1183
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
1196
1197
<!-- 以值替代名稱,Properties可以在整個POM中使用,也可以作為觸發條件(見settings.xml配置檔案裡activation元素的說明)。格式是<name>value</name>。 -->
1198
1199
1200
1201
</project>
若轉載請注明出處!若有疑問,請回複交流!