一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - maven中pom.xml詳細介紹

maven中pom.xml詳細介紹

2021-01-30 12:12劉曉春 Java教程

最近在學習maven,這篇文章主要介紹了maven中pom.xml詳細介紹,具有一定參考價值,需要的朋友可以了解下。

POM 代表工程對象模型。它是使用 Maven 工作時的基本組建,是一個 xml 文件。它被放在工程根目錄下,文件命名為 pom.xml

POM 包含了關于工程和各種配置細節的信息,Maven 使用這些信息構建工程。

POM 也包含了目標和插件。當執行一個任務或者目標時,Maven 會查找當前目錄下的 POM,從其中讀取所需要的配置信息,然后執行目標。能夠在 POM 中設置的一些配置如下:

project dependencies
plugins
goals
build profiles
project version
developers
mailing list
在創建 POM 之前,我們首先確定工程組(groupId),及其名稱(artifactId)和版本,在倉庫中這些屬性是工程的唯一標識。

POM 舉例

?
1
2
3
4
5
6
7
8
9
10
11
<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
  http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
 
  <groupId>com.companyname.project-group</groupId>
  <artifactId>project</artifactId>
  <version>1.0</version>
 
</project>

需要說明的是每個工程應該只有一個 POM 文件。

所有的 POM 文件需要 project 元素和三個必須的字段:groupId, artifactId,version。
在倉庫中的工程標識為 groupId:artifactId:version
POM.xml 的根元素是 project,它有三個主要的子節點:

 

節點 描述
groupId 這是工程組的標識。它在一個組織或者項目中通常是唯一的。例如,一個銀行組織 com.company.bank 擁有所有的和銀行相關的項目。
artifactId 這是工程的標識。它通常是工程的名稱。例如,消費者銀行。groupId 和 artifactId 一起定義了 artifact 在倉庫中的位置。
version 這是工程的版本號。在 artifact 的倉庫中,它用來區分不同的版本。例如:
com.company.bank:consumer-banking:1.0
com.company.bank:consumer-banking:1.1.

 

Super POM
所有的 POM 都繼承自一個父 POM(無論是否顯式定義了這個父 POM)。父 POM 也被稱作 Super POM,它包含了一些可以被繼承的默認設置。

Maven 使用 effective pom(Super pom 加上工程自己的配置)來執行相關的目標,它幫助開發者在 pom.xml 中做盡可能少的配置,當然這些配置可以被方便的重寫。

查看 Super POM 默認配置的一個簡單方法是執行以下命令:mvn help:effective-pom

在你的電腦上的任意目錄下創建一個 pom.xml 文件,使用上面提到的示例 pom 中的內容。

在下面的例子中,我們在 C:\MVN\project 目錄中創建了一個 pom.xml 文件。

現在打開命令控制臺,到 pom.xml 所在的目錄下執行以下 mvn 命令。

?
1
C:\MVN\project>mvn help:effective-pom

Maven 將會開始處理并顯示 effective-pom。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'help'.
[INFO] ------------------------------------------------------------------------
[INFO] Building Unnamed - com.companyname.project-group:project-name:jar:1.0
[INFO]  task-segment: [help:effective-pom] (aggregator-style)
[INFO] ------------------------------------------------------------------------
[INFO] [help:effective-pom {execution: default-cli}]
[INFO]
 
.....
 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: < 1 second
[INFO] Finished at: Thu Jul 05 11:41:51 IST 2012
[INFO] Final Memory: 6M/15M
[INFO] ------------------------------------------------------------------------

Effective POM 的結果就像在控制臺中顯示的一樣,經過繼承、插值之后,使配置生效。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
<?xml version="1.0" encoding="UTF-8"?>
<!-- ================================================================= -->
<!--                                  -->
<!-- Generated by Maven Help Plugin on 2012-07-05T11:41:51       -->
<!-- See: http://maven.apache.org/plugins/maven-help-plugin/      -->
<!--                                  -->
<!-- ================================================================= -->
 
<!-- ================================================================= -->
<!--                                  -->
<!-- Effective POM for project                     -->
<!-- 'com.companyname.project-group:project-name:jar:1.0'       -->
<!--                                  -->
<!-- ================================================================= -->
 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/
2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 h
ttp://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <groupId>com.companyname.project-group</groupId>
 <artifactId>project</artifactId>
 <version>1.0</version>
 <build>
  <sourceDirectory>C:\MVN\project\src\main\java</sourceDirectory>
  <scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>
  <testSourceDirectory>C:\MVN\project\src\test\java</testSourceDirectory>
  <outputDirectory>C:\MVN\project\target\classes</outputDirectory>
  <testOutputDirectory>C:\MVN\project\target\test-classes</testOutputDirectory>
  <resources>
   <resource>
    <mergeId>resource-0</mergeId>
    <directory>C:\MVN\project\src\main\resources</directory>
   </resource>
  </resources>
  <testResources>
   <testResource>
    <mergeId>resource-1</mergeId>
    <directory>C:\MVN\project\src\test\resources</directory>
   </testResource>
  </testResources>
  <directory>C:\MVN\project\target</directory>
  <finalName>project-1.0</finalName>
  <pluginManagement>
   <plugins>
    <plugin>
     <artifactId>maven-antrun-plugin</artifactId>
     <version>1.3</version>
    </plugin>
    <plugin>
     <artifactId>maven-assembly-plugin</artifactId>
     <version>2.2-beta-2</version>
    </plugin>
    <plugin>
     <artifactId>maven-clean-plugin</artifactId>
     <version>2.2</version>
    </plugin>
    <plugin>
     <artifactId>maven-compiler-plugin</artifactId>
     <version>2.0.2</version>
    </plugin>
    <plugin>
     <artifactId>maven-dependency-plugin</artifactId>
     <version>2.0</version>
    </plugin>
    <plugin>
     <artifactId>maven-deploy-plugin</artifactId>
     <version>2.4</version>
    </plugin>
    <plugin>
     <artifactId>maven-ear-plugin</artifactId>
     <version>2.3.1</version>
    </plugin>
    <plugin>
     <artifactId>maven-ejb-plugin</artifactId>
     <version>2.1</version>
    </plugin>
    <plugin>
     <artifactId>maven-install-plugin</artifactId>
     <version>2.2</version>
    </plugin>
    <plugin>
     <artifactId>maven-jar-plugin</artifactId>
     <version>2.2</version>
    </plugin>
    <plugin>
     <artifactId>maven-javadoc-plugin</artifactId>
     <version>2.5</version>
    </plugin>
    <plugin>
     <artifactId>maven-plugin-plugin</artifactId>
     <version>2.4.3</version>
    </plugin>
    <plugin>
     <artifactId>maven-rar-plugin</artifactId>
     <version>2.2</version>
    </plugin>
    <plugin>
     <artifactId>maven-release-plugin</artifactId>
     <version>2.0-beta-8</version>
    </plugin>
    <plugin>
     <artifactId>maven-resources-plugin</artifactId>
     <version>2.3</version>
    </plugin>
    <plugin>
     <artifactId>maven-site-plugin</artifactId>
     <version>2.0-beta-7</version>
    </plugin>
    <plugin>
     <artifactId>maven-source-plugin</artifactId>
     <version>2.0.4</version>
    </plugin>
    <plugin>
     <artifactId>maven-surefire-plugin</artifactId>
     <version>2.4.3</version>
    </plugin>
    <plugin>
     <artifactId>maven-war-plugin</artifactId>
     <version>2.1-alpha-2</version>
    </plugin>
   </plugins>
  </pluginManagement>
  <plugins>
   <plugin>
    <artifactId>maven-help-plugin</artifactId>
    <version>2.1.1</version>
   </plugin>
  </plugins>
 </build>
 <repositories>
  <repository>
   <snapshots>
    <enabled>false</enabled>
   </snapshots>
   <id>central</id>
   <name>Maven Repository Switchboard</name>
   <url>http://repo1.maven.org/maven2</url>
  </repository>
 </repositories>
 <pluginRepositories>
  <pluginRepository>
   <releases>
    <updatePolicy>never</updatePolicy>
   </releases>
   <snapshots>
    <enabled>false</enabled>
   </snapshots>
   <id>central</id>
   <name>Maven Plugin Repository</name>
   <url>http://repo1.maven.org/maven2</url>
  </pluginRepository>
 </pluginRepositories>
 <reporting>
  <outputDirectory>C:\MVN\project\target/site</outputDirectory>
 </reporting>
</project>

在上面的 pom.xml 中,你可以看到 Maven 在執行目標時需要用到的默認工程源碼目錄結構、輸出目錄、需要的插件、倉庫和報表目錄。

Maven 的 pom.xml 文件也不需要手工編寫。

Maven 提供了大量的原型插件來創建工程,包括工程結構和 pom.xml。

總結

以上就是本文關于maven中pom.xml詳細介紹的全部內容,希望對大家有所幫助。有什么問題可以隨時留言,歡迎大家留下寶貴的意見,小編會及時修改。感謝朋友們對本站的支持!

原文鏈接:http://blog.csdn.net/augus3344/article/details/51793489

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 失禁尿丝袜vk | 亚洲人成网站在线观看青青 | 国产精品免费视频能看 | 亚洲男人第一天堂 | 亚洲人成网站在线观看播放青青 | 我与旗袍老师疯狂床震 | 日韩在线一区二区三区免费视频 | 百合互慰吃奶互揉漫画 | 亚洲精品动漫在线观看 | 国产高清自拍视频 | 欧美8x8x| 四虎影在线永久免费观看 | 成人免费观看网欧美片 | 毛片网站免费观看 | 久久精品亚洲热综合一本 | 成全动漫视频在线观看 | 青青草国产免费国产是公开 | 91夜夜操| 国产成人h视频在线播放网站 | 色妞女女女女女bbbb | 无码乱人伦一区二区亚洲一 | 日本护士handjob | 亚洲国产精品自在自线观看 | 欧美一级在线视频 | 娇小8一12xxxx第一次 | 国产一级特黄aa大片免费 | 小嫩videos| 久久国产热视频99rev6 | 国产精品永久免费视频观看 | 先锋资源av | 国产精品亚洲午夜一区二区三区 | 国产激情一区二区三区成人91 | 国产成人99精品免费观看 | 牛人国产偷窥女洗浴在线观看 | japan日韩xxxx69hd japanese在线观看 | 亚洲 欧美 清纯 校园 另类 | 秋霞午夜伦午夜高清福利片 | 成年男人永久免费看片 | 欧美一区二区三区四区在线观看 | 四虎永久免费地址 | 欧美破苞合集 magnet |