Maven shade插件:如何遮蔽第三方依赖的传递依赖

时间:2018-01-03 09:54:48

标签: maven maven-shade-plugin

输入

我正在开发使用Kafka Clients 0.11(KC-0.11)的基础设施。 KC-0.11有它自己的依赖性。

Project X旨在使用我的infra。 Project X还使用了另一种使用Kafka Client 0.8(KC-0.8)的基础设施。显然,KC-0.8有它自己的依赖(类似于KC-0.11只有早期版本......)

我需要项目X才能使用两者 KC-0.8和KC-0.11。 为此,我使用了maven shade插件,在我的基础上,我在罐子里涂了KC-0.11。

问题

对KC-0.11执行着色,而不对KC-0.11的依赖进行着色,但我还需要遮蔽KC-0.11的传递依赖性。 (我必须掩盖KC-0.11的传递依赖性,以便KC-0.8可以像以前那样使用它的原始依赖性.KC-0.8无法使用它的高级版本依赖)

问题

  1. 如何在我的jar中隐藏KC-0.11的传递依赖关系,而不是手动逐个选择它们?
  2. 一般来说:如果是阴影,这不应该是默认选项吗?没有意义的是,每次我为第三方着色时,我还需要遮蔽它的所有(传递)依赖关系,以确保它能够正常工作吗?

0 个答案:

没有答案