Maven插件


什么是Maven插件?

Maven实际上是一个插件执行框架,其中每个任务实际上都是由插件完成的。Maven插件通常用于 -

  • 创建jar文件
  • 创建war文件
  • 编译代码文件
  • 代码的单元测试
  • 创建项目文档
  • 创建项目报告

插件通常提供一组目标,可以使用以下语法执行

mvn [plugin-name]:[goal-name]

例如,通过运行以下命令,可以使用maven-compiler-plugin的编译目标编译Java项目。

mvn compiler:compile

插件类型

Maven提供了以下两种插件

序号 类型和说明
1 构建插件 它们在构建过程中执行,应该在pom.xml的元素中进行配置。
2 报告插件 它们在网站生成过程中执行,并且应该在pom.xml的元素中进行配置。

以下是几个常见插件的列表

序号 插件和说明
1 clean 构建完成后清理目标。删除目标目录。
2 compiler 编译Java源文件。
3 surefire 运行JUnit单元测试。创建测试报告。
4 jar 从当前项目构建JAR文件。
5 war 从当前项目构建WAR文件。
6 javadoc 为项目生成Javadoc。
7 antrun 从构建的任何阶段运行一组ant任务。

我们在示例中广泛使用了 maven-antrun-plugin 来在控制台上打印数据。参考构建配置文件一章 让我们以更好的方式理解它,并在C:\ MVN \ project文件夹中创建一个pom.xml。

<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/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.companyname.projectgroup</groupId>
   <artifactId>project</artifactId>
   <version>1.0</version>
   <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>
</project>

接下来,打开命令控制台并转至包含pom.xml的文件夹并执行以下 mvn 命令。

C:\MVN\project>mvn clean

Maven将开始处理和显示清洁生命周期的清洁阶段。

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------
[INFO] Building Unnamed - com.companyname.projectgroup:project:jar:1.0
[INFO]    task-segment: [post-clean]
[INFO] ------------------------------------------------------------------
[INFO] [clean:clean {execution: default-clean}]
[INFO] [antrun:run {execution: id.clean}]
[INFO] Executing tasks
     [echo] clean phase
[INFO] Executed tasks
[INFO] ------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------
[INFO] Total time: < 1 second
[INFO] Finished at: Sat Jul 07 13:38:59 IST 2012
[INFO] Final Memory: 4M/44M
[INFO] --------------------
----------------------------------------------

上面的例子说明了以下关键概念

  • 插件在pom.xml中使用插件元素指定。

  • 每个插件可以有多个目标。

  • 您可以使用其相位元素来定义插件应从何处开始处理的阶段。我们已经使用了 clean 阶段。

  • 您可以通过将任务绑定到插件的目标来配置要执行的任务。我们将 echo 任务与 maven-antrun-plugin的 run 目标绑定在一起。

  • 如果Maven在本地存储库中不可用,Maven将下载该插件并开始处理。