天天看點

Maven 生命周期 和插件

1.3 生命周期1.3.1 什麼是生命周期?

Maven生命周期就是為了對所有的建構過程進行抽象和統一。包括項目清理、初始化、編譯、打包、測試、部署等幾乎所有建構步驟。

生命周期可以了解為建構工程的步驟。

在Maven中有三套互相獨立的生命周期,請注意這裡說的是“三套”,而且“互相獨立”,這三套生命周期分别是:

Clean Lifecycle: 在進行真正的建構之前進行一些清理工作。

Default Lifecycle: 建構的核心部分,編譯,測試,打包,部署等等。

Site Lifecycle: 生成項目報告,站點,釋出站點。

再次強調一下它們是互相獨立的,你可以僅僅調用clean來清理工作目錄,僅僅調用site來生成站點。當然你也可以直接運作 mvn clean install site 運作所有這三套生命周期。

1.3.2 Maven三大生命周期1.3.2.1 clean:清理項目

每套生命周期都由一組階段(Phase)組成,我們平時在指令行輸入的指令總會對應于一個特定的階段。比如,運作mvn clean ,這個的clean是Clean生命周期的一個階段。有Clean生命周期,也有clean階段。Clean生命周期一共包含了三個階段:

pre-clean 執行一些需要在clean之前完成的工作

clean 移除所有上一次建構生成的檔案

post-clean 執行一些需要在clean之後立刻完成的工作

mvn clean 中的clean就是上面的clean,在一個生命周期中,運作某個階段的時候,它之前的所有階段都會被運作,也就是說,mvn clean 等同于 mvn pre-clean clean ,如果我們運作 mvn post-clean ,那麼 pre-clean,clean 都會被運作。這是Maven很重要的一個規則,可以大大簡化指令行的輸入。

1.3.2.2 default:建構項目

Default生命周期是Maven生命周期中最重要的一個,絕大部分工作都發生在這個生命周期中。這裡,隻解釋一些比較重要和常用的階段:

validate

generate-sources

process-sources

generate-resources

process-resources 複制并處理資源檔案,至目标目錄,準備打包。

compile 編譯項目的源代碼。

process-classes

generate-test-sources

process-test-sources

generate-test-resources

process-test-resources 複制并處理資源檔案,至目标測試目錄。

test-compile 編譯測試源代碼。

process-test-classes

test 使用合适的單元測試架構運作測試。這些測試代碼不會被打包或部署。

prepare-package

package 接受編譯好的代碼,打包成可釋出的格式,如JAR 。

pre-integration-test

integration-test

post-integration-test

verify

install 将包安裝至本地倉庫,以讓其它項目依賴。

deploy 将最終的包複制到遠端的倉庫,以讓其它開發人員與項目共享。

運作任何一個階段的時候,它前面的所有階段都會被運作,這也就是為什麼我們運作mvn install 的時候,代碼會被編譯,測試,打包。此外,Maven的插件機制是完全依賴Maven的生命周期的,是以了解生命周期至關重要。

1.3.2.3 site:生成項目站點

Site生命周期

pre-site 執行一些需要在生成站點文檔之前完成的工作

site 生成項目的站點文檔

post-site 執行一些需要在生成站點文檔之後完成的工作,并且為部署做準備

site-deploy 将生成的站點文檔部署到特定的伺服器上

這裡經常用到的是site階段和site-deploy階段,用以生成和釋出Maven站點,這可是Maven相當強大的功能,Manager比較喜歡,文檔及統計資料自動生成,很好看。

1.4 Maven插件

Maven的核心僅僅定義了抽象的生命周期,具體的任務都是交由插件完成的。每個插件都能實作一個功能,每個功能就是一個插件目标。Maven的生命周期與插件目标互相綁定,以完成某個具體的建構任務。

例如compile就是插件maven-compiler-plugin的一個插件目标

1.4.1 Maven編譯插件

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<configuration>

<source>1.7</source>

<target>1.7</target>

<encoding>UTF-8</encoding>

</configuration>

</plugin>

Maven 生命周期 和插件

修改配置檔案後,在工程上點選右鍵選擇maven→update project configration

Maven 生命周期 和插件

1.4.2 Tomcat插件1.4.2.1 使用maven建立一個web工程