Scala 在另一个SBT插件中显式启用SBT插件
我正在写一个sbt插件来抽象出一些我使用的一些常见插件的样板文件。在这个任务中,我试图配置的是它的Scala 在另一个SBT插件中显式启用SBT插件,scala,sbt,Scala,Sbt,我正在写一个sbt插件来抽象出一些我使用的一些常见插件的样板文件。在这个任务中,我试图配置的是它的requires设置为noTrigger,这需要在项目设置中显式启用插件 使用SBT AutoPlugin的if I setrequires=BuildInfoPlugin和trigger=allRequirements时,如果我显式启用基本插件,设置将自动加载,或者如果我如上所述设置requires和trigger=noTrigger,则显式添加我正在使用的插件也将导入基本插件 /* Requir
requires
设置为noTrigger
,这需要在项目设置中显式启用插件
使用SBT AutoPlugin的if I setrequires=BuildInfoPlugin
和trigger=allRequirements
时,如果我显式启用基本插件,设置将自动加载,或者如果我如上所述设置requires和trigger=noTrigger
,则显式添加我正在使用的插件也将导入基本插件
/* Requires enablePlugins(BuildInfoPlugin) to be explicitly set on project,
then the settings in this plugin will automatically load. */
object BuildInformation extends AutoPlugin {
override def requires = BuildInfoPlugin
override def trigger = allRequirements
}
有没有办法让派生插件显式导入基本插件,而不需要显式添加派生插件本身?(例如,PlayFramework中的PlayScala插件在加载时会拉入sbt本机packager,但需要显式启用PlayScala)
我想到的一件事是扩展基本插件,并将其触发器方法重写为
allRequirements
,但我想知道是否有更干净/更首选的方法。不比派生更优雅,但可能更灵活:
object DerivedPlugin extends AutoPlugin {
override def trigger: PluginTrigger = allRequirements
override def requires = JvmPlugin
val autoImport = BasePlugin.autoImport
override lazy val projectSettings = BasePlugin.projectSettings
}
object DerivedPlugin extends AutoPlugin {
override def trigger: PluginTrigger = allRequirements
override def requires = JvmPlugin
val autoImport = BasePlugin.autoImport
override lazy val projectSettings = BasePlugin.projectSettings
}