-
生命週期定義:
生命週期抽象了構建的各個步驟, 定義了它們的次序, 但沒有提供具體的實現. 每個構建步驟可以綁定一個或者多個插件行爲. -
聲明週期:
生命週期由階段組成(phase), 這些階段是有順序的, 並且後面的階段依賴於前面的階段, 用戶和 Maven 最直接的交互方式就是調用這些聲明週期階段.- clean 生命週期: 目的是清理項目, 包含: pre-clean, clean, post-clean 三個階段. 調用後面的階段會導致該階段前面的階段也會被執行.
- default 生命週期:
- validate
- initialize
- generate-sources
- process-sources: 處理項目主資源文件. 一般來說, 是對
src/main/resources
目錄的內容進行變量替換等工作後, 複製到項目輸出的主 classpath 目錄中. - generate-resources
- process-resources
- compile: 編譯項目的主代碼. 一般來說, 是編譯
src/main/java
目錄下的 Java 文件至項目輸出的主 classpath 目錄中. - process-classes
- generate-test-sources
- process-test-sources: 處理項目測試資源文件. 一般來說, 是對
src/test/resources
目錄的內容進行變量替換等工作後, 複製到項目輸出的測試 classpath 目錄中. - generate-test-resources
- process-test-resources
- test-compile: 編譯項目的測試代碼. 一般來說, 是編譯
src/test/java
目錄下的 Java 文件至項目輸出的測試 classpath 目錄中. - process-test-classes
- test: 使用單元測試框架運行測試, 測試代碼不會被打包或者部署.
- prepare-package
- package: 接受編譯好的代碼, 打包成可發佈的格式, 如 JAR.
- pre-integration-test
- integration-test
- post-integration-test
- verify
- install: 將包安裝到 Maven 本地倉庫, 供本地其它 Maven 項目使用.
- deploy: 將最終的包複製到遠程倉庫中, 供其它開發人員和 Maven 項目使用.
- site 生命週期: 建立和發佈項目站點, Maven 能夠基於 pom 所包含的信息, 自動生成一個友好的站點, 方便團隊交流和發佈項目信息.
- pre-site: 執行一些在生成項目站點之前需要完成的工作.
- site: 生成項目站點文檔.
- post-site: 執行一些在生成項目站點之後需要完成的工作.
- site-deploy: 將生成的項目站點發布到服務器上.
-
插件綁定:
- 內置綁定: 主要的生命週期階段都綁定了很多插件的目標.
- 自定義綁定: 創建項目的源碼 jar 包.
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>2.1.1</version> <executions> <execution> <id>attach-sources</id> <phase>verify</phase> <goals> <goal>jar-no-fork</goal> </goals> </execution> </executions> </plugin>
-
插件配置:
- 命令行插件配置: 使用 -D 參數. 例如跳過測試: mvn install -Dmaven.test.skip = true
- pox 全局配置:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.1</version> <configuration> <source>1.5</source> <target>1.5</target> </configuration> </plugin>
-
參考:
[1] : Maven 實戰
Maven-Maven 生命週期
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.