用AntRun插件测试Maven的生命周期

Posted Jim

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用AntRun插件测试Maven的生命周期相关的知识,希望对你有一定的参考价值。

在用AntRun插件之前,需要了解以下几个知识点:

1、Maven的生命周期,参考:http://www.cnblogs.com/EasonJim/p/6816340.html,主要是要知道生命周期里的每一个阶段。

2、AntRun插件的配置和使用,参考:http://www.cnblogs.com/EasonJim/p/6819338.html

在阅读http://www.yiibai.com/maven/maven_build_life_cycle.html这篇文章时,发现里面讲解时,尤其是使用AntRun插件有点模糊,所以以下我提出我理解的观点:

1、为什么要使用AntRun插件,原因是在使用AntRun插进时,其<phase>可以指定Maven的生命周期的阶段,然后当在命令行触发这个阶段时(也就是执行插件的目标),可以触发到AntRun插件的<target>里面的任务。

2、使用AntRun插件最多的就是<echo>输出信息插件,毕竟在生命周期探索期间,要熟悉每个阶段的调用位置,输出信息是最明了的。

以下,我将重现AntRun插件在执行Maven生命周期阶段的过程:

1、先创建一个Java Application项目,参考:http://www.cnblogs.com/EasonJim/p/6809882.html

2、配置pom.xml实现清洁(clean)阶段pre-clean、clean、post-clean。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.jsoft.test</groupId>
  <artifactId>testproject</artifactId>
  <packaging>jar</packaging>
  <version>0.1-SNAPSHOT</version>
  <name>testproject</name>
  <url>http://maven.apache.org</url>
  <build>
      <plugins>
        <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-antrun-plugin</artifactId>
           <version>1.8</version>
           <executions>
              <execution>
                 <id>pre-clean-echo</id>
                 <phase>pre-clean</phase>
                 <goals>
                    <goal>run</goal>
                 </goals>
                 <configuration>
                    <tasks>
                       <echo>pre-clean phase</echo>
                    </tasks>
                 </configuration>
              </execution>
              <execution>
                 <id>clean-echo</id>
                 <phase>clean</phase>
                 <goals>
                  <goal>run</goal>
                 </goals>
                 <configuration>
                    <tasks>
                       <echo>clean phase</echo>
                    </tasks>
                 </configuration>
              </execution>
              <execution>
                 <id>post-clean-echo</id>
                 <phase>post-clean</phase>
                 <goals>
                    <goal>run</goal>
                 </goals>
                 <configuration>
                    <tasks>
                       <echo>post-clean phase</echo>
                    </tasks>
                 </configuration>
              </execution>
           </executions>
        </plugin>
      </plugins>
  </build>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

在命令行上运行:

mvn post-clean

此时会触发post-clean阶段,并且之前的pre-clean、clean也一并触发,如下所示:

 

总结:

通过以上的AntRun例子,可以很清晰的展示Maven生命周期各个阶段。

切记这一点,为什么要用AntRun插件,因为这个插件很好展示生命周期的阶段,并且不用编写一行代码。

以上是关于用AntRun插件测试Maven的生命周期的主要内容,如果未能解决你的问题,请参考以下文章

Maven系列学习Maven生命周期和插件

Maven 核心原理

Maven生命周期与插件

Maven 默认生命周期和插件部分

maven中的多个antrun任务

Maven实战读书笔记:Maven生命周期与插件