你对maven插件有了解多少?

227 阅读2分钟
原文链接: mp.weixin.qq.com

预计阅读时间:  5分钟

想要了解代码生成器同学,可以回归一下

  1. 我的springboot代码生成器

  2. Java代码生成器讲解,教你如何生成entity

  3. Spring-boot-code-generator 环境配置

maven生命周期

  • clean:项目清理的处理

  • default(或 build):项目部署的处理

  • site:项目站点文档创建的处理

每个生命周期中都包含着一系列的阶段(phase)。这些 phase 就相当于 Maven 提供的统一的接口,然后这些 phase 的实现由 Maven 的插件来完成。

我们在输入 mvn 命令的时候 比如 mvn clean,clean 对应的就是 Clean 生命周期中的 clean 阶段。但是 clean 的具体操作是由 maven-clean-plugin 来实现的。

所以说 Maven 生命周期的每一个阶段的具体实现都是由 Maven 插件实现的。

Maven 实际上是一个依赖插件执行的框架,每个任务实际上是由插件完成。Maven 插件通常被用来:

  • 创建 jar 文件

  • 创建 war 文件

  • 编译代码文件

  • 代码单元测试

  • 创建工程文档

  • 创建工程报告

maven插件类型

    

类型 描述
Build plugins 在构建时执行,并在 pom.xml 的  元素中配置。
Reporting plugins 在网站生成过程中执行,并在 pom.xml 的  元素中配置。

常用maven插件

插件 描述
clean 构建之后清理目标文件。删除目标目录。
compiler 编译 Java 源文件。
surefile 运行 JUnit 单元测试。创建测试报告。
jar 从当前工程中构建 JAR 文件。
war 从当前工程中构建 WAR 文件。
javadoc 为工程生成 Javadoc。
antrun 从构建过程的任意一个阶段中运行一个 ant 任务的集合。

常用maven插件代码

<!-- 编译插件 -->      <plugin>        <groupId>org.apache.maven.plugins</groupId>        <artifactId>maven-compiler-plugin</artifactId>        <version>3.5.1</version>        <configuration>          <source>${jdk.source.version}</source>          <target>${jdk.target.version}</target>        </configuration>      </plugin>      <!-- resource插件 -->      <plugin>        <groupId>org.apache.maven.plugins</groupId>        <artifactId>maven-resources-plugin</artifactId>        <version>3.0.1</version>        <configuration>          <encoding>UTF-8</encoding>        </configuration>      </plugin>      <!-- 打包jar文件时,配置manifest文件,加入lib包的jar依赖 -->      <plugin>        <groupId>org.apache.maven.plugins</groupId>        <artifactId>maven-jar-plugin</artifactId>        <version>2.4</version>        <configuration>          <encoding>${project.build.sourceEncoding}</encoding>        </configuration>      </plugin>      <!-- clean插件 -->      <plugin>        <groupId>org.apache.maven.plugins</groupId>        <artifactId>maven-clean-plugin</artifactId>        <version>2.6.1</version>      </plugin>      <!-- ant插件 -->      <plugin>        <groupId>org.apache.maven.plugins</groupId>        <artifactId>maven-antrun-plugin</artifactId>        <version>1.8</version>      </plugin>      <!-- dependency插件 -->      <plugin>        <groupId>org.apache.maven.plugins</groupId>        <artifactId>maven-dependency-plugin</artifactId>        <version>2.10</version>      </plugin>