我使用SBT来管理依赖项。我在我的项目中添加了2罐AAA和BBB。但是,AAA和BBB都有一个具有完全相同名称和路径的类,如com.ccc.ddd.eee.fff.foo.java。
现在,编译器不会抱怨。但是,当我导入foo.java时,它总是来自jar AAA,但不幸的是,我希望它来自jar BBB。
有关如何解决这个难题的任何建议?提前谢谢。
编辑: 我正在使用libraryDependencies + =,托管依赖项。
答案 0 :(得分:0)
您没有说明如何添加2个罐子;看到你的build.sbt
。
也就是说,类路径受列出依赖项的顺序的影响。如果您使用的是非托管依赖项,并且希望找到特定版本的类,请首先列出该库依赖项。
如果将它们指定为托管依赖项,则更常见的是尝试类似:
libraryDependencies += "foo" % "bar" % "x.y.z" exclude("org.domain", "AAA")
或:
ivyXML :=
<dependencies>
<dependency org="org.domain" name="AAA" rev="x.y.z">
<exclude module="activation"/>
</dependency>
</dependencies>
此处有更多信息:http://www.scala-sbt.org/release/docs/Library-Management.html