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