maven 插件

maven 的生命周期定义了多个阶段,其中每个阶段要实现的具体功能都是由插件来完成。

一个插件 包含多个插件目标(Plugin Goal),每个插件目标可以实现一项特定的功能。

maven生命周期的阶段插件目标绑定,以完成某个具体的构件任务。例如项目编译这个任务,对应了default生命周期阶段的compile阶段,而maven-compiler-plugin插件的compile目标能够完成该任务,因此将他们进行绑定,以实现项目编译任务。

为了让用户几乎不用任何配置就能构建 maven 项目,maven 为一些主要的生命周期阶段绑定好了插件目标,当我们通过命令调用生命周期阶段时,绑定的插件目标就会执行对应的任务。

自定义绑定

用户可以自己选择将某个插件目标绑定到生命周期的某个阶段上,使得 maven 项目在构建过程中执行个性化任务。

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>3.2.1</version>
            <executions>
                <execution>
                    <id>attach-sources</id>
                    <phase>verify</phase>
                    <goals>
                        <goal>
                            jar-no-fork
                        </goal>
                    </goals>
                </execution>
            </executions>
 
        </plugin>
    </plugins>
</build>

maven-source-plugin插件的jar-no-fork目标,绑定到 default 生命周期的verify阶段。

参考资料

Maven学习5: 生命周期和插件