簡體   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