常用内置插件
Maven 内置插件覆盖核心构建任务,无需手动声明即可使用。
核心插件列表
| 插件 | 功能 | 默认绑定阶段 |
|---|---|---|
| maven-compiler-plugin | 编译 Java 源码 | compile、test-compile |
| maven-jar-plugin | 打包 JAR | package |
| maven-war-plugin | 打包 WAR | package |
| maven-surefire-plugin | 执行单元测试 | test |
| maven-clean-plugin | 清理构建产物 | clean |
| maven-install-plugin | 安装到本地仓库 | install |
| maven-deploy-plugin | 发布到远程仓库 | deploy |
| maven-resources-plugin | 处理资源文件 | process-resources |
maven-compiler-plugin
功能
编译 Java 源码到字节码。
默认配置
XML
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source> <!-- 源码版本 -->
<target>1.8</target> <!-- 字节码版本 -->
<encoding>UTF-8</encoding>
</configuration>
</plugin>
使用属性配置
XML
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>
maven-jar-plugin
功能
打包项目为 JAR 文件。
配置示例
XML
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.2</version>
<configuration>
<archive>
<manifest>
<mainClass>com.example.Main</mainClass> <!-- 主类 -->
<addClasspath>true</addClasspath>
</manifest>
</archive>
</configuration>
</plugin>
输出产物
XML
target/${artifactId}-${version}.jar
maven-war-plugin
功能
打包 Web 项目为 WAR 文件。
配置示例
XML
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
<configuration>
<warSourceDirectory>src/main/webapp</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
输出产物
Bash
target/${artifactId}-${version}.war
maven-surefire-plugin
功能
执行单元测试。
配置示例
XML
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
<configuration>
<skipTests>false</skipTests>
<includes>
<include>**/*Test.java</include>
</includes>
<excludes>
<exclude>**/*IntegrationTest.java</exclude>
</excludes>
</configuration>
</plugin>
跳过测试
XML
mvn package -DskipTests # 跳过测试执行
mvn package -Dmaven.test.skip=true # 跳过测试编译和执行
maven-clean-plugin
功能
清理构建产物目录。
配置示例
XML
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<deleteAll>true</deleteAll>
<filesets>
<fileset>
<directory>logs</directory>
<includes>
<include>**/*.log</include>
</includes>
</fileset>
</filesets>
</configuration>
</plugin>
maven-resources-plugin
功能
复制和处理资源文件。
配置示例
XML
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<encoding>UTF-8</encoding>
<nonFilteredFileExtensions>
<extension>jpg</extension>
<extension>png</extension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
插件版本管理
使用 pluginManagement
text
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
</plugin>
</plugins>
</pluginManagement>
父 POM 统一版本
text
<!-- 父 POM -->
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>17</source>
<target>17</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<!-- 子模块无需声明版本 -->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<!-- version 继承 -->
</plugin>
</plugins>
要点总结
- compiler:编译源码,配置 Java 版本
- jar:打包 JAR,可配置主类清单
- war:打包 WAR,可配置 webapp 目录
- surefire:执行测试,支持跳过和过滤
- clean:清理 target 目录
- 使用 pluginManagement 统一插件版本
📝 发现内容有误?点击此处直接编辑