SBT:子项目中的plugins.sbt被忽略了吗?

时间:2014-06-09 14:45:53

标签: scala sbt

我有一个多项目SBT构建。当我将plugin.sbt添加到具有所需subproject/project声明的addSbtPlugin时,sbt不会加载这些插件。是否打算将多项目中的所有插件全局添加到<root>/project/plugins.sbt而不是子项目中? 理想情况下,我只想在特定子项目下拥有一些插件任务:subproject/somePluginTask

我有SBT 0.13.5

1 个答案:

答案 0 :(得分:16)

乌龟一路向下

正如Getting Started Guide中所述,sbt中的构建是位于该级别project/目录中的构建的根项目。由于您有一个表达顶级多项目的构建,因此唯一可以查看的目录是<root>/project/

经典插件

在sbt 0.13.5之前,best practice guide建议插件不会覆盖settings并提供类似obfuscateSettings的内容,以便您可以在项目级别选择加入插件。换句话说,插件是在构建级别添加的,但插件设置仅在您希望的情况下加载到每个项目。您正在使用的插件可能会也可能不会遵循本指南。

自动插件

sbt 0.13.5中引入的主要功能是auto plugin,这使您不仅可以更轻松地在每个项目级别启用插件,还可以在自动加载时禁用它们。

lazy val app = (project in file("app"))
  .enablePlugins(HelloPlugin)