【Java】maven-shaded-plugin超详细详解

一、总体介绍

maven-shaded-plugin提供了两大基本功能:

  1. 将依赖的jar包打包到当前jar包(常规打包是不会将所依赖的jar包打进来的);
  2. 对依赖的jar包进行重命名(用于类的隔离);

创建一个Shaded JAR:

maven-shaded-plugin插件的goal绑定在了maven生命周期的package这个阶段。
因此执行下面的命令就会创建出来一个Shaded JAR包:

mvn package

一般来说我们会这么配置shaded插件:
整体框架如下,更细节的配置需要在 <configuration>标签里去定制。

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>3.3.0</version>
        <configuration>
          <!-- put your configurations here -->
        </configuration>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  ...
</project>

接下来我们分几节介绍一下maven-shaded-plugin的使用配置案例,有相似需求的话可以直接来copy,然后进行微调即可。

二、例子1:Selecting Contents for Uber JAR

下面的POM代码片段展示了如何控制哪些项目依赖应该包含/排除在uber JAR中:
这里有个uber JAR的概念,可以理解成我们最终要打出来的那个JAR。

还有 92% 的精彩内容
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
支付 ¥1.00 继续阅读

相关阅读更多精彩内容

  • 简介 该插件提供了将工件打包成 Uber jar 的功能,包括其依赖项,并对某些依赖项的包进行处理。Shade 插...
    rosy_dawn阅读 20,256评论 0 8
  • 本文翻译源于Apache Maven Project 官网 控制哪些jar包应该包含在项目jar中,哪些不包含 [...
    coderrrrrrrrr阅读 3,468评论 0 1
  • 1. Why? 通过 maven-shade-plugin 生成一个 uber-jar,它包含所有的依赖 jar ...
    data4阅读 107,610评论 7 67
  • 前言什么是 POMQuick Overview POM 常用元素 pom.xml 完整注释 参考 0 前言 什么是...
    阿父阅读 12,760评论 1 36
  • WEB-INF文件夹的作用:WEB-INF是servlet-container中的安全目录,这个目录下的文件只能被...
    多关心老人阅读 1,639评论 0 0

友情链接更多精彩内容