You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Maven配置将所有依赖统一放入JAR包内的单独libs目录

解决方案

完全可以实现该目录结构调整,你只需要修改maven-shade-plugin的重定向配置即可:

  • 找到pom.xml中maven-shade-plugin的配置块,在<relocations>节点下为所有第三方依赖包新增重定向规则
  • 不要为你自己的项目包com.feniksovich添加任何重定向规则,保证原有路径不变

示例配置如下:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-shade-plugin</artifactId>
  <version>3.5.1</version>
  <executions>
    <execution>
      <phase>package</phase>
      <goals>
        <goal>shade</goal>
      </goals>
      <configuration>
        <relocations>
          <!-- 重定向Hikari依赖 -->
          <relocation>
            <pattern>com.zaxxer</pattern>
            <shadedPattern>libs.com.zaxxer</shadedPattern>
          </relocation>
          <!-- 重定向commons-io依赖 -->
          <relocation>
            <pattern>org.apache</pattern>
            <shadedPattern>libs.org.apache</shadedPattern>
          </relocation>
          <!-- 重定向slf4j依赖 -->
          <relocation>
            <pattern>org.slf4j</pattern>
            <shadedPattern>libs.org.slf4j</shadedPattern>
          </relocation>
          <!-- 重定向jedis依赖 -->
          <relocation>
            <pattern>redis.clients</pattern>
            <shadedPattern>libs.redis.clients</shadedPattern>
          </relocation>
        </relocations>
      </configuration>
    </execution>
  </executions>
</plugin>

配置生效后重新执行mvn package命令,生成的JAR包就会完全匹配你需要的目录结构,同时插件会自动修改你代码中对这些第三方类的引用路径,不会出现类找不到的问题。

内容的提问来源于stack exchange,提问作者Feniksovich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 14:36:03