在Apache Maven中,如何强制添加省略的依赖项jar?

时间:2019-09-12 02:50:39

标签: maven maven-3 classpath dependency-resolution

Maven的the脚的依赖冲突解决规则是“越近越好”:如果一个库有2个版本,则仅保留最接近传递依赖树主干的一个版本,其余版本从类路径中删除。 。这已导致maven构建的所有项目中普遍存在不稳定。

我想从两个方面解决这个问题:

  1. 使用像JHades这样的冲突检测分析器来扫描类路径中的所有内容,并从类加载器中报告版本冲突

  2. 使用精美的类加载器根据情况自定义类路径,以便在正确的时间使用正确的版本。这也是OSGi所采用的方法

要实现它们中的任何一个,我都需要重写maven,以使其在各种生命周期(尤其是“测试”)中将进一步版本的jar添加到类路径中。我该如何实现?

更新:我知道maven是一个旧产品,并且不是在设计时考虑到具有成千上万个依赖性的大型项目。因此,如果您在Gradle,Pants,Buck,sbt或任何深奥的构建工具中都有解决方案,我仍然会接受它作为有效答案。

0 个答案:

没有答案