天天看點

Maven生命周期(Clean)

MAVEN生命周期

1、Clean生命周期

運作mvn clean将調用清理生命周期,它包含三個生命周期階段:

pre-clean、clean、post-clean;

通過運作mvn clean而不是mvn clean:clean,能讓MAVEN有機會執行其他被綁定到pre-clean

階段的目标。下面是一個例子:

例一、在pre-clean階段觸發一個目标

<project>

.......

 <build>

  <pluginManagement>

  <plugins>

   <plugin>

    <artifactId>maven-antrun-plugin</artifactId>

    <executions>

     <execution>

     <id>file-exists</id>

     <phase>pre-clean</phase>

     <goals>

      <goal>run</goal>

     </goals>

     <configuration>

      <tasks>

      <taskdef resource="net/sf/antcontrib/antcontrib/properties"/>

      <available file="${project.build.directory}/${project.build.finalName}.${project.packaging}" property="file.exists" value="true"/>

      <if>

       <not>

       <isset property="file.exists"/>

       </not>

      <then>

       <echo>No ${project.build.finalName}.${project.packaging} to delete</echo>

      </then>

      <else>

       <echo>

       Delete ${project.build.finalName}.${project.packaging}

       </echo>

      </else>

      </if>

      </tasks>

     </configuration>

     </execution>

    </executions>

    <dependencies>

    <dependency>

     <groupId>ant-contrib</groupId>

     <artifactId>ant-contrib</artifactId>

     <version>1.0b2</version>

    </dependency>

    </dependencies>

   </plugin>

   <plugin>

        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-compiler-plugin</artifactId>

        <configuration>

          <source>1.5</source>

          <target>1.5</target>

        </configuration>

      </plugin>

  </plugins>

  </pluginManagement>

 </build>

</project>

例二、自定義clean插件的行為

<project>

  <modelVersion>4.0.4</modelVersion>

  ...

  <build>

    <plugins>

     <plugin>

       <artifactId>maven-clean-plugin</artifactId>

       <configuration>

        <filesets>

          <fileset>

           <directory>target-other</directory>

           <includes>

             <include>*.class</include>

            </includes>

          </fileset>

        </filesets>

       </configuration>

     </plugin>

    </plugins>

  </build>

</project>

繼續閱讀