编译
- maven-compiler-plugin:
功能:编译Java源代码
作用:将src/main/java目录下的Java文件编译为字节码(.class文件)
典型配置:
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>
- maven-source-plugin:
功能:生成项目源码JAR包
作用:将源代码打包成独立的JAR文件,便于其他开发者查看和调试
使用场景:开源项目分发、团队协作开发、依赖项目调试
典型配置:
xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
打包
- maven-shade-plugin:
功能:生成可执行的Fat Jar
作用:将项目及其依赖打包到一个JAR文件中
典型配置:
xml
<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>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.example.MainClass</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
- spring-boot-maven-plugin:
功能:Spring Boot项目专用打包插件
作用:
重新打包生成可执行Fat Jar
包含所有依赖到BOOT-INF/lib目录
生成Shebang头(Linux可直接执行)
使用场景:
生成可执行JAR(java -jar启动)
处理依赖冲突(避免类路径问题)
特点:
通过repackage目标重新处理JAR
保留原始JAR备份(.original)
自动处理Spring Boot启动机制
配置选项:
显式指定启动类(多主类场景)
启用Systemd支持
xml
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.7.10</version>
<configuration>
<executable>true</executable>
<mainClass>com.example.MainClass</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
调试
- exec-maven-plugin:
功能:运行Java主类
作用:在命令行直接执行Java程序
典型配置:
xml
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<mainClass>com.example.MainClass</mainClass>
<arguments>
<argument>arg1</argument>
<argument>arg2</argument>
</arguments>
</configuration>
</plugin>
- maven-dependency-plugin:
功能:项目依赖管理插件
作用:
分析依赖树(dependency:tree)
复制依赖文件到指定目录
解压依赖(类隔离)
清理本地仓库
使用场景:
依赖冲突排查
生成依赖报告
生成可执行JAR(maven-shade-plugin)
特点:
多目标支持(如analyze、copy)
通过绑定生命周期
支持Java 9模块(resolve目标)
典型配置:
analyze>分析依赖冲突
copy-dependencies>复制依赖
xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<id>analyze</id>
<goals>
<goal>analyze</goal>
</goals>
</execution>
</executions>
</plugin>
资源过滤
- maven-resource-plugin:
功能:处理项目资源文件
作用:
复制资源文件到输出目录(如target/classes)
支持占位符过滤(property)包含静态资源(如配置文件、模板)使用场景:多环境配置(如application−{property}) 包含静态资源(如配置文件、模板) 使用场景: 多环境配置(如application-property)包含静态资源(如配置文件、模板)使用场景:多环境配置(如application−{env}.yml)
生成可执行JAR(spring-boot-maven-plugin)
特点:
默认处理src/main/resources目录
通过绑定生命周期
支持资源压缩(配置)
典型配置:
true>启用占位符替换
/>文件过滤
xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</plugin>