如何使用SBT将子项目打包为另一个子项目中的编译时依赖项?

时间:2016-10-26 18:19:46

标签: sbt

这是我想要实现的目标:

我有两个项目A和B.项目A依靠项目B进行编译时验证。更具体地说,项目B为项目A提供了编译时注释处理。编译时注释处理需要注册一个jar文件以供编译器选择它。

我需要的是:每次构建项目A时,都应该将项目B编译,打包并发布到本地存储库。我该如何设置?注意:我不需要项目B来运行项目A或打包它。

注意:我在项目A中使用Play-Java而项目B只是一个常规的sbt java项目。

1 个答案:

答案 0 :(得分:0)

您的根项目中是否有build.sbt个文件?这种设置要求项目A能够参考项目B.

如果您要求发布项目B,您只需在根build.sbt中执行以下操作:

lazy val projectB = project.in(file("project-b"))
lazy val projectA = project.in(file("project-a")).settings(
  // Note that you need to scope `publishLocal` to projectB.
  compile <<= compile.dependsOn(publishLocal.in(projectB))
)