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>
相关推荐
BestAns19 小时前
一文带你吃透 Java 反射机制
java·后端
wasp52019 小时前
AgentScope Java 核心架构深度解析
java·开发语言·人工智能·架构·agentscope
2501_9167665419 小时前
【Springboot】数据层开发-数据源自动管理
java·spring boot·后端
自在极意功。20 小时前
MyBatis 动态 SQL 详解:从基础到进阶实战
java·数据库·mybatis·动态sql
软件管理系统20 小时前
基于Spring Boot的便民维修管理系统
java·spring boot·后端
百***787520 小时前
Step-Audio-2 轻量化接入全流程详解
android·java·gpt·php·llama
快乐肚皮20 小时前
MySQL递归CTE
java·数据库·mysql·递归表达式
廋到被风吹走21 小时前
【Spring】DispatcherServlet解析
java·后端·spring
廋到被风吹走21 小时前
【Spring】PlatformTransactionManager详解
java·spring·wpf