
Maven生命周期详解
默认生命周期、清理生命周期和站点生命周期
构建阶段
阶段执行时机
例如,执行mvn compile命令:
Maven将执行从验证阶段到编译阶段的所有阶段。
完整的阶段列表如下:(此处应补充完整的阶段列表)
构建目标
目标在插件中定义,并绑定到特定的构建阶段。例如,maven-compiler-plugin插件中的compile目标绑定到compile阶段。
同一阶段中,不同插件的目标执行顺序由pom.xml文件中<plugins>部分插件的声明顺序决定。
查看绑定到package阶段的插件目标:
<code class="bash">mvn help:describe -dcmd=package</code>
查看插件目标和阶段绑定信息
以frontend-maven-plugin插件为例:
<code class="xml"><plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<version>1.15.1</version>
<executions>
<execution>
<id>install-node-and-npm</id>
<goals>
<goal>install-node-and-npm</goal>
</goals>
</execution>
<execution>
<id>npm install</id>
<goals>
<goal>npm</goal>
</goals>
</execution>
...
</executions>
</plugin></code>
install-node-and-npm和npm目标的定义类如下,它们绑定到generate-resources阶段:
<code class="java">@Mojo(name="install-node-and-npm", defaultPhase = LifecyclePhase.GENERATE_RESOURCES, threadSafe = true)
public final class InstallNodeAndNpmMojo extends AbstractFrontendMojo {
// ...
}
@Mojo(name="npm", defaultPhase = LifecyclePhase.GENERATE_RESOURCES, threadSafe = true)
public final class NpmMojo extends AbstractFrontendMojo {
// ...
}</code>
Maven配置文件
配置文件用于:
- 添加或覆盖属性
- 添加依赖项
- 添加插件依赖项
- 添加插件管理依赖项
设置默认配置文件
<code class="xml"><profiles>
<profile>
<activation>
<property>
<name>debug</name>
</property>
</activation>
...
</profile>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
...
</profile>
</profiles></code>
覆盖已启用的配置文件
假设dev配置文件默认启用,要启用production配置文件并禁用dev配置文件:
<code class="bash">mvn -P=-dev,production</code>










