如何使用完全相同的路径和名称来解决2个类的问题?

时间:2015-10-15 14:09:58

标签: sbt dependency-management

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

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

有关如何解决这个难题的任何建议?提前谢谢。

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

1 个答案:

答案 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