Maven - 插件


什么是 Maven 插件?

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

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

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

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

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

mvn compiler:compile

插件类型

Maven 提供了以下两种类型的插件 -

先生。 类型和描述
1

构建插件

它们在构建过程中执行,并且应该在 pom.xml 的 <build/> 元素中进行配置。

2

报告插件

它们在站点生成过程中执行,并且应在 pom.xml 的 <reporting/> 元素中进行配置。

以下是一些常见插件的列表 -

先生。 插件及说明
1

干净的

构建后清理目标。删除目标目录。

2

编译器

编译 Java 源文件。

3

万无一失

运行 JUnit 单元测试。创建测试报告。

4

从当前项目构建 JAR 文件。

5

战争

从当前项目构建 WAR 文件。

6

javadoc

为项目生成 Javadoc。

7

安特伦

从构建提到的任何阶段运行一组 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 将开始处理并显示 clean 生命周期的 clean 阶段。

C:\MVN>mvn clean
[INFO] Scanning for projects...
[INFO]
[INFO] ----------------< com.companyname.projectgroup:project >----------------
[INFO] Building project 1.0
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ project ---
[INFO] Deleting C:\MVN\target
[INFO]
[INFO] --- maven-antrun-plugin:1.1:run (id.clean) @ project ---
[INFO] Executing tasks
     [echo] clean phase
[INFO] Executed tasks
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  1.266 s
[INFO] Finished at: 2021-12-13T13:58:10+05:30
[INFO] ------------------------------------------------------------------------

C:\MVN>

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

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

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

  • 您可以使用其phase元素定义插件应从何处开始处理的阶段。我们使用了清洁阶段。

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

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