如何使用完全相同的路径和名称解决 2 类 的依赖关系?

How to solve 2 classes in dependency with exact same path&name?

我正在使用 SBT 来管理依赖项。我在我的项目中添加了 2 个 AAA 和 BBB 罐。但是,AAA 和 BBB 都有一个 class,其名称和路径完全相同,例如 com.ccc.ddd.eee.fff.foo.java.

现在,编译器不会报错了。但是,当我导入 foo.java 时,它总是来自 jar AAA,但不幸的是,我希望它来自 jar BBB。

关于如何解决这个难题有什么建议吗?提前谢谢你。

编辑: 我正在使用 libraryDependencies +=,托管依赖项。

你没有说这 2 个罐子是如何添加的;看看你的 build.sbt.

会很有帮助

也就是说,class路径受您列出依赖项的顺序影响。如果您使用的是非托管依赖项,并且希望找到特定版本的 class,请首先列出该库依赖项。

如果它们被指定为托管依赖项,则更常见的做法是:

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