Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
98 lines (77 sloc) 3.06 KB
layout title key tags category date modify_date
article
502 Maven-构建生命周期
A20190409022
编程 JAVA基础
blog
2019-04-09 22:19:22 +0800
2019-04-09 22:19:22 +0800

生命周期、阶段、插件、目标

Maven将项目构建的过程拆解三个生命周期Clean、Defualt、Site。

每个生命周期包含若干个阶段。Clean包含3个阶段pre-clean、clean和post-clean,Defualt包含23个阶段,Site包含3个阶段。

完整的阶段信息可以参考官网:http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference

每一个阶段都可以绑定插件,插件中包含目标,用来执行具体要做的事情。

Maven的插件包存放路径:%本地仓库%\org\apache\maven\plugin目录下。

以Clean生命周期为例,生命周期阶段插件目标之间的关系可以用下图表示。

绑定插件

内置

Maven内置了插件绑定关系。查看 maven-core-*.jar包的META-INF/plexus/components.xml文件,例如clean阶段绑定关系如下。

<component>
    <role>org.apache.maven.lifecycle.Lifecycle</role>
    <implementation>org.apache.maven.lifecycle.Lifecycle</implementation>
    <role-hint>clean</role-hint>
    <configuration>
        <id>clean</id>
        <phases>
            <phase>pre-clean</phase>
            <phase>clean</phase>
            <phase>post-clean</phase>
        </phases>
        <default-phases>
            <clean>
    org.apache.maven.plugins:maven-clean-plugin:2.5:clean
            </clean>
        </default-phases>
    </configuration>
</component>

自定义

也可以在POM文件中自定义绑定,例如下面的例子,在clean阶段绑定maven-antrun-plugin插件,执行run目标。

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.1</version>
            <executions>
                <execution>
                    <id>id.clean</id>
                    <phase>clean</phase>
                    <goals>
                        <goal>run</goal>
                    </goals>
                    <configuration>
                        <tasks>
                            <echo>clean phase</echo>
                        </tasks>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

学习资料

[1] Introduction to the Build Lifecycle https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html [2] w3cschool-Maven教程 https://www.w3cschool.cn/maven/ [3] Maven入门指南⑦:Maven的生命周期和插件 https://www.cnblogs.com/luotaoyeah/p/3819001.html [4] Maven的生命周期,阶段,插件,目标的关系 https://blog.csdn.net/just4you/article/details/74225386

You can’t perform that action at this time.