maven插件

编译

  • 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>
相关推荐
拼好饭和她皆失1 小时前
Java学习---Arrays类
java·开发语言·学习
魂梦翩跹如雨1 小时前
P10424 [蓝桥杯 2024 省 B] 好数——Java解答
java·蓝桥杯
编程火箭车1 小时前
【Java SE 基础学习打卡】20 运算符(下)
java·运算符·编程基础·逻辑运算符·条件判断·三元运算符·关系运算符
m0_598177231 小时前
Mysql(2) - DQL-基本查询
java
编程修仙2 小时前
第七篇 java的注解以及使用反射实现自定义注解功能
xml·java·开发语言·spring
f***14772 小时前
Tomcat10下载安装教程
java
lusasky2 小时前
Java内存堆栈AI分析工具全览
java·开发语言
CoderYanger2 小时前
C.滑动窗口-越长越合法/求最短/最小——2904. 最短且字典序最小的美丽子字符串
java·开发语言·数据结构·算法·leetcode·1024程序员节