如何使用完全相同的路径和名称解决 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
我正在使用 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