Maven Assembly 传递的依赖jars打不进应用程序

本文探讨了使用Maven进行项目打包时遇到的问题,即部分依赖的jar未能正确包含在最终的应用程序包内。通过调整配置文件中的依赖项和设置,成功解决了依赖未被打包的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在用Maven build 工程时, 有些依赖的jar打不到安装包中去,试来拭去,最后发现问题所在:

例如:我的顶层jar是a, a 依赖 b, c, d,

我在assembly的pom中,添加了依赖a, b, c, d

如下:

<dependencies>
    <dependency>  
   <groupId>myapp</groupId>
   <artifactId>a</artifactId>
   <version>1.1.1</version>
   <type>jar</type>
  </dependency>

<dependency>  
   <groupId>myapp</groupId>
   <artifactId>b</artifactId>
   <version>1.1.1</version>
   <type>jar</type>
  </dependency>
<dependency>  
   <groupId>myapp</groupId>
   <artifactId>c</artifactId>
   <version>1.1.1</version>
   <type>jar</type>
  </dependency>

<dependency>  
   <groupId>myapp</groupId>
   <artifactId>d</artifactId>
   <version>1.1.1</version>
   <type>jar</type>
  </dependency>

</dependencies> 

然后再assembly的descriptor中打包时,只写a, 如下

<dependencySets>
  <dependencySet>
   <outputDirectory>app/lib</outputDirectory>
   <useTransitiveFiltering>true</useTransitiveFiltering>
   <includes>
    <include>
     myapp:a

    </include>
     </dependencySet>

</dependencySets>

结果,只有a 打进了程序包中。b, c, d及其传递的依赖都没有打进去。

后来我把 b, c, d的依赖从pom中移走,

这次,a, b, c, d都打进了应用包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值