文章目錄
- 1. 生命周期與插件建構
-
- 1.1 生命周期
-
- 1.1.1 clean生命周期
- 1.1.2 defau建構生命周期
- 1.1.3 site建構生命周期
- 1.2 插件
-
- 通過插件可以自定義其他功能
1. 生命周期與插件建構
1.1 生命周期
-
項目建構生命周期
Maven建構生命周期描述的是一次建構過程經曆經曆了多少個事件
- Maven對項目建構的生命周期劃分為3套
- clean:清理工作
- default:核心工作,例如編譯,測試,打包,部署等
- site:産生報告,釋出站點等
1.1.1 clean生命周期
- pre-clean 執行一些需要在clean之前完成的工作
- clean 移除所有上一次建構生成的檔案
- post-clean 執行一些需要在clean之後立刻完成的工作
1.1.2 defau建構生命周期
從上到下按順序執行,例;執行 test 時,test以上的都會執行
- validate(校驗) 校驗項目是否正确并且所有必要的資訊可以完成項目的建構過程。
- initialize(初始化) 初始化建構狀态,比如設定屬性值。
- generate-sources(生成源代碼) 生成包含在編譯階段中的任何源代碼。
- process-sources(處理源代碼) 處理源代碼,比如說,過濾任意值。
- generate-resources(生成資源檔案) 生成将會包含在項目包中的資源檔案。
- process-resources (處理資源檔案) 複制和處理資源到目标目錄,為打包階段最好準備。
- compile(編譯) 編譯項目的源代碼。
- process-classes(處理類檔案) 處理編譯生成的檔案,比如說對Java class檔案做位元組碼改善優化。
- generate-test-sources(生成測試源代碼) 生成包含在編譯階段中的任何測試源代碼。
- process-test-sources(處理測試源代碼) 處理測試源代碼,比如說,過濾任意值。
- generate-test-resources(生成測試資源檔案) 為測試建立資源檔案。
- process-test-resources(處理測試資源檔案) 複制和處理測試資源到目标目錄。
- test-compile(編譯測試源碼) 編譯測試源代碼到測試目标目錄.
- process-test-classes(處理測試類檔案) 處理測試源碼編譯生成的檔案。
- test(測試) 使用合适的單元測試架構運作測試(Juint是其中之一)。
- prepare-package(準備打包) 在實際打包之前,執行任何的必要的操作為打包做準備。
- package(打包) 将編譯後的代碼打包成可分發格式的檔案,比如JAR、WAR或者EAR檔案。
- pre-integration-test(內建測試前) 在執行內建測試前進行必要的動作。比如說,搭建需要的環境。
- integration-test(內建測試) 處理和部署項目到可以運作內建測試環境中。
- post-integration-test(內建測試後) 在執行內建測試完成後進行必要的動作。比如說,清理內建測試環境。
- verify (驗證) 運作任意的檢查來驗證項目包有效且達到品質标準。
- install(安裝) 安裝項目包到本地倉庫,這樣項目包可以用作其他本地項目的依賴。
- deploy(部署) 将最終的項目包複制到遠端倉庫中與其他開發者和項目共享
1.1.3 site建構生命周期
- pre-site 執行一些需要在生成站點文檔之前完成的工作
- site 生成項目的站點文檔
- post-site 執行一些需要在生成站點文檔之後完成的工作,并且為部署做準備
- site-deploy 将生成的站點文檔部署到特定的伺服器
1.2 插件
- 插件與生命周期内的階段綁定,在執行到對應生命周期時執行對應的插件功能預設
- maven在各個生命周期上綁定有預設的功能
- 通過插件可以自定義其他功能
通過插件可以自定義其他功能
在generate-test-resources生命周期執行,對源碼進行jar打包
<!--建構-->
<build>
<!--插件-->
<plugins>
<!--具體插件-->
<plugin>
<!--坐标-->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.2.1</version>
<!--執行-->
<executions>
<execution>
<!--對源碼進行jar打包-->
<goals>
<goal>jar</goal>
</goals>
<!--在generate-test-resources生命周期執行-->
<phase>generate-test-resources</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>