Maven 有三套相互獨立的生命周期,每套包含多個有序階段:
| 生命周期 | 用途 | 關鍵階段 |
|---|---|---|
| Clean | 構建前清理 | pre-clean, clean, post-clean |
| Default | 核心構建 | validate, compile, test, package, verify, install, deploy |
| Site | 文檔站點生成 | pre-site, site, post-site, site-deploy |
關鍵規則: 運行某階段會自動執行其之前所有階段。如 mvn install 會依次執行 compile、test、package 等。
mvn clean → Clean: pre-clean, cleanmvn test → Default: validate ... testmvn clean install → Clean 全部 + Default 到 installmvn clean deploy site-deploy → 三套生命周期全跑Maven 核心僅 3-4MB,所有實際構建行為由插件完成。階段通過 <plugin> 綁定插件目標。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.1.2</version>
<executions>
<execution>
<phase>package</phase>
<goals><goal>jar-no-fork</goal></goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
執行 mvn package 時,自動生成 -sources.jar。
source:jar 打包主源碼source:test-jar 打包測試源碼source:jar-no-fork 不 fork 生命周期打包主源碼
掌握生命周期與插件綁定,是精通 Maven 實戰的核心鑰匙。