如何在使用SBT编译之前着色?
我们的项目主要由两部分组成
unmanagedJars
罐子设置的根项目下的子项目依赖。 问题是如何在编译根项目之前组装阴影项目。 否则,根项目将无法编译,因为阴影罐中的这些类不可用。
正如我在评论中所说的,我会采取不同的路线。 如果您将依赖关系视为托管依赖关系,则可以将它们都放在库本身和项目内。
我们来看一个例子:
假设我有一个依赖com.typesafe.config
的项目。 我可以将它放在自己的库中,也就是在com.typesafe.config
的代码中,也可以在消费库中。
你可以这样定义它:
assemblyShadeRules in assembly ++= Seq(
ShadeRule.rename("com.typesafe.config.**" -> "my_conf.@1")
.inLibrary("com.typesafe" % "config" % "1.3.0")
.inProject
)
这基本上意味着“将任何与com.typesafe.config
并将其my_conf
到my_conf
。
请注意,我们正在使用inLibrary
和inProject
。 前者的意思是“在com.typesafe.config
更改包名”, inProject
意思是“在我的代码中更改对com.typesafe.config
所有引用”。
现在,它的输出如下所示:
这就是程序包在内部看起来的样子( my_conf
在com.typesafe.config
之前最初是com.typesafe.config
):
这是您的代码将引用的包:
链接地址: http://www.djcxy.com/p/93885.html