558 字
约 1 分钟
1
Maven 插件
2026-09-19
无标签
Maven 插件
什么是 Maven 插件?
Maven 插件是扩展 Maven 功能的组件,每个插件包含一个或多个目标(goals)。Maven 的核心功能都是通过插件实现的。
插件类型
- 构建插件:在构建过程中执行,配置在
元素中 - 报告插件:在站点生成过程中执行,配置在
元素中
常用核心插件
maven-compiler-plugin
编译 Java 源代码
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<source>11</source>
<target>11</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
maven-surefire-plugin
运行单元测试
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<includes>
<include>**/*Test.java</include>
<include>**/*Tests.java</include>
</includes>
</configuration>
</plugin>
maven-jar-plugin
创建 JAR 文件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<archive>
<manifest>
<mainClass>com.example.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
常用插件列表
| 插件 | 功能 | 常用目标 |
|---|---|---|
| maven-clean-plugin | 清理构建目录 | clean |
| maven-resources-plugin | 处理资源文件 | resources, testResources |
| maven-compiler-plugin | 编译源代码 | compile, testCompile |
| maven-surefire-plugin | 运行单元测试 | test |
| maven-jar-plugin | 创建 JAR 包 | jar |
| maven-war-plugin | 创建 WAR 包 | war |
| maven-install-plugin | 安装到本地仓库 | install |
| maven-deploy-plugin | 部署到远程仓库 | deploy |
插件配置
基本配置
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
</plugins>
</build>
执行配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<copy todir="${project.build.directory}/config">
<fileset dir="src/main/config"/>
</copy>
</target>
</configuration>
</execution>
</executions>
</plugin>
实用插件推荐
spring-boot-maven-plugin
Spring Boot 应用构建插件
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.7.0</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
maven-shade-plugin
创建包含依赖的 uber-jar
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.4.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
maven-assembly-plugin
创建自定义分发包
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.4.2</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
插件管理
在父 POM 中使用 pluginManagement 统一管理插件版本:
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
插件开发
创建自定义 Maven 插件的基本步骤:
- 创建 Maven 项目,packaging 设为 maven-plugin
- 添加 maven-plugin-api 依赖
- 创建 Mojo 类(继承 AbstractMojo)
- 使用注解配置插件元数据
- 实现 execute() 方法
@Mojo(name = "hello", defaultPhase = LifecyclePhase.COMPILE)
public class HelloMojo extends AbstractMojo {
@Parameter(property = "hello.message", defaultValue = "Hello World!")
private String message;
public void execute() throws MojoExecutionException {
getLog().info(message);
}
}
评论
0 条
还没有评论,先写一条吧。