国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

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

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

服務器之家 - 編程語言 - Java教程 - Maven構建生命周期詳細介紹

Maven構建生命周期詳細介紹

2020-09-21 14:13劉曉春 Java教程

這篇文章主要介紹了Maven構建生命周期詳細介紹,小編覺得還是挺不錯的,這里分享給大家,需要的朋友可以參考下。

什么是構建生命周期

構建生命周期是一組階段的序列(sequence of phases),這些構建生命周期中的每一個由構建階段的不同列表定義,其中構建階段表示生命周期中的階段。

例如,默認(default)的生命周期包括以下階段(注意:這里是簡化的階段,用于生命周期階段的完整列表):

驗證(validate) - 驗證項目是否正確,所有必要的信息可用
編譯(compile) - 編譯項目的源代碼
測試(test) - 使用合適的單元測試框架測試編譯的源代碼。這些測試不應該要求代碼被打包或部署
打包(package) - 采用編譯的代碼,并以其可分配格式(如JAR)進行打包。
驗證(verify) - 對集成測試的結果執行任何檢查,以確保滿足質量標準
安裝(install) - 將軟件包安裝到本地存儲庫中,用作本地其他項目的依賴項
部署(deploy) - 在構建環境中完成,將最終的包復制到遠程存儲庫以與其他開發人員和項目共享。每個階段定義了目標被執行的順序。這里的階段是生命周期的一部分。

舉例說明,一個典型的 Maven 構建生命周期是由以下幾個階段的序列組成的:

 

階段 處理 描述
prepare-resources 資源拷貝 本階段可以自定義需要拷貝的資源
compile 編譯 本階段完成源代碼編譯
package 打包 本階段根據 pom.xml 中描述的打包配置創建 JAR / WAR 包
install 安裝 本階段在本地 / 遠程倉庫中安裝工程包

 

當需要在某個特定階段之前或之后執行目標時,可以使用 pre 和 post 來定義這個目標。

當 Maven 開始構建工程,會按照所定義的階段序列的順序執行每個階段注冊的目標。Maven 有以下三個標準的生命周期:

clean
default(or build)
site

目標表示一個特定的、對構建和管理工程有幫助的任務。它可能綁定了 0 個或多個構建階段。沒有綁定任何構建階段的目標可以在構建生命周期之外被直接調用執行。

執行的順序依賴于目標和構建階段被調用的順序。例如,考慮下面的命令。clean 和 package 參數是構建階段,而 dependency:copy-dependencies 是一個目標。

?
1
mvn clean dependency:copy-dependencies package

這里的 clean 階段將會被首先執行,然后 dependency:copy-dependencies 目標會被執行,最終 package 階段被執行。

Clean 生命周期
當我們執行 mvn post-clean 命令時,Maven 調用 clean 生命周期,它包含以下階段。

pre-clean
clean
post-clean

Maven 的 clean 目標(clean:clean)綁定到了 clean 生命周期的 clean 階段。它的 clean:clean 目標通過刪除構建目錄刪除了構建輸出。所以當 mvn clean 命令執行時,Maven 刪除了構建目錄。

我們可以通過在上面的 clean 生命周期的任何階段定義目標來修改這部分的操作行為。

在下面的例子中,我們將 maven-antrun-plugin:run 目標添加到 pre-clean、clean 和 post-clean 階段中。這樣我們可以在 clean 生命周期的各個階段顯示文本信息。

我們已經在 C:\MVN\project 目錄下創建了一個 pom.xml 文件。

?
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
<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.projectgroup</groupId>
<artifactId>project</artifactId>
<version>1.0</version>
<build>
<plugins>
  <plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-antrun-plugin</artifactId>
  <version>1.1</version>
  <executions>
   <execution>
     <id>id.pre-clean</id>
     <phase>pre-clean</phase>
     <goals>
      <goal>run</goal>
     </goals>
     <configuration>
      <tasks>
        <echo>pre-clean phase</echo>
      </tasks>
     </configuration>
   </execution>
   <execution>
     <id>id.clean</id>
     <phase>clean</phase>
     <goals>
     <goal>run</goal>
     </goals>
     <configuration>
      <tasks>
        <echo>clean phase</echo>
      </tasks>
     </configuration>
   </execution>
   <execution>
     <id>id.post-clean</id>
     <phase>post-clean</phase>
     <goals>
      <goal>run</goal>
     </goals>
     <configuration>
      <tasks>
        <echo>post-clean phase</echo>
      </tasks>
     </configuration>
   </execution>
  </executions>
  </plugin>
</plugins>
</build>
</project>

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

?
1
C:\MVN\project>mvn post-clean

Maven 將會開始處理并顯示 clean 生命周期的所有階段。

?
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
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------
[INFO] Building Unnamed - com.companyname.projectgroup:project:jar:1.0
[INFO]  task-segment: [post-clean]
[INFO] ------------------------------------------------------------------
[INFO] [antrun:run {execution: id.pre-clean}]
[INFO] Executing tasks
   [echo] pre-clean phase
[INFO] Executed tasks
[INFO] [clean:clean {execution: default-clean}]
[INFO] [antrun:run {execution: id.clean}]
[INFO] Executing tasks
   [echo] clean phase
[INFO] Executed tasks
[INFO] [antrun:run {execution: id.post-clean}]
[INFO] Executing tasks
   [echo] post-clean phase
[INFO] Executed tasks
[INFO] ------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------
[INFO] Total time: < 1 second
[INFO] Finished at: Sat Jul 07 13:38:59 IST 2012
[INFO] Final Memory: 4M/44M
[INFO] ------------------------------------------------------------------

你可以嘗試修改 mvn clean 命令,來顯示 pre-clean 和 clean,而在 post-clean 階段不執行任何操作。

Default (or Build) 生命周期
這是 Maven 的主要生命周期,被用于構建應用。包括下面的 23 個階段。

 

生命周期階段 描述
validate 檢查工程配置是否正確,完成構建過程的所有必要信息是否能夠獲取到。
initialize 初始化構建狀態,例如設置屬性。
generate-sources 生成編譯階段需要包含的任何源碼文件。
process-sources 處理源代碼,例如,過濾任何值(filter any value)。
generate-resources 生成工程包中需要包含的資源文件。
process-resources 拷貝和處理資源文件到目的目錄中,為打包階段做準備。
compile 編譯工程源碼。
process-classes 處理編譯生成的文件,例如 Java Class 字節碼的加強和優化。
generate-test-sources 生成編譯階段需要包含的任何測試源代碼。
process-test-sources 處理測試源代碼,例如,過濾任何值(filter any values)。
test-compile 編譯測試源代碼到測試目的目錄。
process-test-classes 處理測試代碼文件編譯后生成的文件。
test 使用適當的單元測試框架(例如JUnit)運行測試。
prepare-package 在真正打包之前,為準備打包執行任何必要的操作。
package 獲取編譯后的代碼,并按照可發布的格式進行打包,例如 JAR、WAR 或者 EAR 文件。
pre-integration-test 在集成測試執行之前,執行所需的操作。例如,設置所需的環境變量。
integration-test 處理和部署必須的工程包到集成測試能夠運行的環境中。
post-integration-test 在集成測試被執行后執行必要的操作。例如,清理環境。
verify 運行檢查操作來驗證工程包是有效的,并滿足質量要求。
install 安裝工程包到本地倉庫中,該倉庫可以作為本地其他工程的依賴。
deploy 拷貝最終的工程包到遠程倉庫中,以共享給其他開發人員和工程。

 

有一些與 Maven 生命周期相關的重要概念需要說明:

當一個階段通過 Maven 命令調用時,例如 mvn compile,只有該階段之前以及包括該階段在內的所有階段會被執行。

不同的 maven 目標將根據打包的類型(JAR / WAR / EAR),被綁定到不同的 Maven 生命周期階段。

在下面的例子中,我們將 maven-antrun-plugin:run 目標添加到 Build 生命周期的一部分階段中。這樣我們可以顯示生命周期的文本信息。

我們已經更新了 C:\MVN\project 目錄下的 pom.xml 文件。

?
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
<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.projectgroup</groupId>
<artifactId>project</artifactId>
<version>1.0</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.1</version>
<executions>
  <execution>
   <id>id.validate</id>
   <phase>validate</phase>
   <goals>
     <goal>run</goal>
   </goals>
   <configuration>
     <tasks>
      <echo>validate phase</echo>
     </tasks>
   </configuration>
  </execution>
  <execution>
   <id>id.compile</id>
   <phase>compile</phase>
   <goals>
     <goal>run</goal>
   </goals>
   <configuration>
     <tasks>
      <echo>compile phase</echo>
     </tasks>
   </configuration>
  </execution>
  <execution>
   <id>id.test</id>
   <phase>test</phase>
   <goals>
     <goal>run</goal>
   </goals>
   <configuration>
     <tasks>
      <echo>test phase</echo>
     </tasks>
   </configuration>
  </execution>
  <execution>
     <id>id.package</id>
     <phase>package</phase>
     <goals>
      <goal>run</goal>
     </goals>
     <configuration>
     <tasks>
      <echo>package phase</echo>
     </tasks>
   </configuration>
  </execution>
  <execution>
   <id>id.deploy</id>
   <phase>deploy</phase>
   <goals>
     <goal>run</goal>
   </goals>
   <configuration>
   <tasks>
     <echo>deploy phase</echo>
   </tasks>
   </configuration>
  </execution>
</executions>
</plugin>
</plugins>
</build>
</project>

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

?
1
C:\MVN\project>mvn compile

Maven 將會開始處理并顯示直到編譯階段的構建生命周期的各個階段。

?
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
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------
[INFO] Building Unnamed - com.companyname.projectgroup:project:jar:1.0
[INFO]  task-segment: [compile]
[INFO] ------------------------------------------------------------------
[INFO] [antrun:run {execution: id.validate}]
[INFO] Executing tasks
   [echo] validate phase
[INFO] Executed tasks
[INFO] [resources:resources {execution: default-resources}]
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources,
i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory C:\MVN\project\src\main\resources
[INFO] [compiler:compile {execution: default-compile}]
[INFO] Nothing to compile - all classes are up to date
[INFO] [antrun:run {execution: id.compile}]
[INFO] Executing tasks
   [echo] compile phase
[INFO] Executed tasks
[INFO] ------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------
[INFO] Total time: 2 seconds
[INFO] Finished at: Sat Jul 07 20:18:25 IST 2012
[INFO] Final Memory: 7M/64M
[INFO] ------------------------------------------------------------------

Site 生命周期
Maven Site 插件一般用來創建新的報告文檔、部署站點等。

階段:

pre-site
site
post-site
site-deploy
在下面的例子中,我們將 maven-antrun-plugin:run 目標添加到 Site 生命周期的所有階段中。這樣我們可以顯示生命周期的所有文本信息。

我們已經更新了 C:\MVN\project 目錄下的 pom.xml 文件。

?
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
<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.projectgroup</groupId>
<artifactId>project</artifactId>
<version>1.0</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.1</version>
  <executions>
   <execution>
     <id>id.pre-site</id>
     <phase>pre-site</phase>
     <goals>
      <goal>run</goal>
     </goals>
     <configuration>
      <tasks>
        <echo>pre-site phase</echo>
      </tasks>
     </configuration>
   </execution>
   <execution>
     <id>id.site</id>
     <phase>site</phase>
     <goals>
     <goal>run</goal>
     </goals>
     <configuration>
      <tasks>
        <echo>site phase</echo>
      </tasks>
     </configuration>
   </execution>
   <execution>
     <id>id.post-site</id>
     <phase>post-site</phase>
     <goals>
      <goal>run</goal>
     </goals>
     <configuration>
      <tasks>
        <echo>post-site phase</echo>
      </tasks>
     </configuration>
   </execution>
   <execution>
     <id>id.site-deploy</id>
     <phase>site-deploy</phase>
     <goals>
      <goal>run</goal>
     </goals>
     <configuration>
      <tasks>
        <echo>site-deploy phase</echo>
      </tasks>
     </configuration>
   </execution>
  </executions>
</plugin>
</plugins>
</build>
</project>

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

?
1
C:\MVN\project>mvn site

Maven 將會開始處理并顯示直到 site 階段的 site 生命周期的各個階段。

?
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
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------
[INFO] Building Unnamed - com.companyname.projectgroup:project:jar:1.0
[INFO]  task-segment: [site]
[INFO] ------------------------------------------------------------------
[INFO] [antrun:run {execution: id.pre-site}]
[INFO] Executing tasks
   [echo] pre-site phase
[INFO] Executed tasks
[INFO] [site:site {execution: default-site}]
[INFO] Generating "About" report.
[INFO] Generating "Issue Tracking" report.
[INFO] Generating "Project Team" report.
[INFO] Generating "Dependencies" report.
[INFO] Generating "Project Plugins" report.
[INFO] Generating "Continuous Integration" report.
[INFO] Generating "Source Repository" report.
[INFO] Generating "Project License" report.
[INFO] Generating "Mailing Lists" report.
[INFO] Generating "Plugin Management" report.
[INFO] Generating "Project Summary" report.
[INFO] [antrun:run {execution: id.site}]
[INFO] Executing tasks
   [echo] site phase
[INFO] Executed tasks
[INFO] ------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------
[INFO] Total time: 3 seconds
[INFO] Finished at: Sat Jul 07 15:25:10 IST 2012
[INFO] Final Memory: 24M/149M
[INFO] ------------------------------------------------------------------```

以上就是本文關于Maven構建生命周期詳細介紹的全部內容,希望對大家有所幫助。如有不足之處,歡迎留言指出,感謝朋友們對本站的支持。

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

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 日韩一区在线播放 | 亚洲精品一级 | 黄色免费网站在线观看 | 久久精品亚洲一区二区 | 国产一区二区精品久久岳 | 国产精品久久久久久一区二区三区 | 国产一级毛片国语一级 | 一区二区精品在线 | 91av免费在线观看 | 免费岛国视频 | 成人精品鲁一区一区二区 | 一级毛片视频 | 激情久久av一区av二区av三区 | 精品在线一区二区三区 | 婷婷色综合 | 日日夜夜精品免费视频 | 国产片一区二区三区 | 在线观看a毛片 | 91精品久久久久久久久久久 | 亚洲xx视频 | 日本黄a三级三级三级 | 亚洲国产精品一区二区三区 | 亚洲另类视频 | 黄色视屏在线免费观看 | 中文字幕一区二区三区四区不卡 | 国产精品久久 | 午夜影院在线观看 | 午夜电影网 | 国产精品久久九九 | 中文字幕人成乱码在线观看 | 国产精品亚洲a | 欧美另类综合 | 亚洲国产精品一区二区久久,亚洲午夜 | 午夜精品久久久久 | 日韩中文字幕一区 | 国产毛片久久久 | 亚洲国产二区 | 欧美一级二级视频 | 色中色av| 台湾av在线 | 国产一区二区h |