[英]java maven - override version of another dependency
我有两个依赖项,由于需求,我无法更改。 两者都在maven中使用scala依赖。
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.8.2</version>
</dependency>
一个依赖项是添加到项目的jar文件库,而另一个依赖项是maven依赖项。
问题是两者都需要scala依赖,一个版本为2.8.2,一个版本为2.10.2。 两者都不能与其他版本号一起使用。
底线是:如何在jar文件2.8.2中设置maven依赖关系以使用2.10.2?
解决这个问题的一种疯狂方法是创建两个独立的maven工件,其中一个引用另一个:
Scala version 1 Scala Version 2
| |
\ / \ /
Art1fact 1 --------> Artifact 2
现在,在Artifact 1中,使用Maven Shade插件 使用类重定位创建jar-with-dependencies(有关详细信息,请参阅Maven-Assembly-Plugin )(例如,将所有类从scala。*映射到old.scala。*)。 重要的是,Artifact 2只会引用Artifact 1的着色版本,因此省略了Scala依赖项。
( ProGuard会让你达到类似的效果)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.