maven-plugin-shade 详解1

maven-plugin-shade 是 Maven 的一个插件,它的作用是将多个 jar 包合并成一个 jar,同时将其中的依赖关系也合并到该 jar 中。这个插件常用于创建可执行 jar 包和打包 web 应用程序。

下面是 maven-plugin-shade 的一些常用配置:

  1. 打包的形式:可以设置打包成一个可执行的 jar 包或者一个普通的 jar 包。

  2. 排除依赖:可以设置排除某些依赖,避免重复打包。

  3. 过滤资源:可以通过配置来过滤掉一些不需要打包的资源。

  4. 重新定位依赖:如果合并后的依赖不能与原来的 jar 包兼容,可以通过重新定位的方式来解决。

  5. 转换类文件:可以对 class 文件进行转换,比如修改包名或类名等。

使用 maven-plugin-shade 打包 jar 包的步骤如下:

  1. 在 pom.xml 文件中添加 maven-shade-plugin 插件。

  2. 配置要合并的 jar 包以及排除的依赖、过滤资源等信息。

  3. 运行 Maven 命令进行打包。

示例:

xml 复制代码
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-shade-plugin</artifactId>
      <version>3.2.1</version>
      <configuration>
        <createDependencyReducedPom>true</createDependencyReducedPom>
        <shadedArtifactAttached>true</shadedArtifactAttached>
        <shadedClassifierName>executable</shadedClassifierName>
        <transformers>
          <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
            <mainClass>${mainClass}</mainClass>
          </transformer>
        </transformers>
        <filters>
          <filter>
            <artifact>*:*</artifact>
            <excludes>
              <exclude>META-INF/*.SF</exclude>
              <exclude>META-INF/*.DSA</exclude>
              <exclude>META-INF/*.RSA</exclude>
            </excludes>
          </filter>
        </filters>
      </configuration>
    </plugin>
  </plugins>
</build>

在配置中,我们设置了要创建一个可执行的 jar 包,并指定了 mainClass。同时,我们设置了过滤规则,排除了一些不需要打包的文件。

运行 Maven 命令 mvn package 进行打包,就会在 target 目录下生成一个可执行的 jar 包。

相关推荐
伍六星4 小时前
maven和npm区别是什么
java·npm·maven
长征coder5 小时前
Maven Deploy的依赖与引用方的依赖不同
java·maven
不知几秋19 小时前
Maven
java·数据库·maven
下雨天u1 天前
maven dependencyManagement标签作用
java·数据库·maven
码农飞哥1 天前
互联网大厂Java求职面试实战:Spring Boot到微服务全景解析
java·spring boot·微服务·maven·hibernate·技术栈·面试技巧
极乐谷21 天前
Maven 项目构建时编译错误问题排查与解决
java·maven
forestsea1 天前
Maven 插件参数注入与Mojo开发详解
java·maven·mojo
开开心心就好2 天前
高效全能PDF工具,支持OCR识别
java·前端·python·pdf·ocr·maven·jetty
shane-u3 天前
Maven私服搭建与登录全攻略
java·maven
半部论语3 天前
jdk多版本切换,通过 maven 指定编译jdk版本不生效,解决思路
java·开发语言·maven·intellij-idea