我有一个多项目包含一个私有宏子项目,它的用途仅限于实现其他子项目的方法体。它也不应该在其他子项目的运行时类路径中,也不应该在其他子项目的已发布POM中以任何形式显示。因此,其他sbt项目可以在不知道宏子项目的情况下使用该项目的库。在sbt中添加编译时只有子项目依赖项
对于外部依赖关系,我发现这SO Q&A完美的作品,但对于子项目,当我试图做类似的事情dependsOn
,sbt抱怨配置“compileonly”未找到。
ivyConfigurations += config("compileonly").hide
val macro = Project("macro", file("macro"))
val lib = Project("lib", file("lib")).dependsOn(macro % "compile->compileonly")
的'compile'任务失败。在编译'lib'时,它无法在'macro'项目中找到任何类。 – Steiny