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