【发布时间】:2018-04-24 05:32:14
【问题描述】:
我有以下情况:
+ DentistApp
L TreatsLibrary
L IceCream 1.0
L CavityCausesLib
L IceCream 2.0
现在我得到一个VerifyError,因为TreatsLibrary 使用的是IceCream.giveToKidAfterDrill(),由于法律原因,它在2.0 版中被删除。
如何导入这两个版本并确保每个版本都使用自己的版本?
【问题讨论】:
-
这不能像在一个ClassLoader中那样只使用一个ClassLoader来完成,只能存在一个版本的类。如果你不想实现自己的类加载机制,你可能想看看 OSGi。
-
是的,可以,我只是不记得怎么做了,它与重命名库有关
-
你用 sbt-assembly 标记了这个,它只会在你使用 uber JAR 打包你的库时帮助你。
-
我正在使用 Uber 罐子
-
“不,它们仅在依赖项中未在项目中使用” 这与我回答的内容有什么关系?打包 uber JAR 时会发生阴影,并且在运行时这些类将具有不同的包名称
标签: scala dependencies sbt sbt-assembly