繁体   English   中英

java maven - 覆盖另一个依赖项的版本

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM