SBT - 如何为特定任务禁用插件(例如“包”)
Posted
技术标签:
【中文标题】SBT - 如何为特定任务禁用插件(例如“包”)【英文标题】:SBT - How to disable a plugin for a specific task (e.g. "package") 【发布时间】:2016-03-21 02:53:01 【问题描述】:有没有办法为特定任务禁用 SBT 插件(AutoPlugin)。
例如,我想在打包时禁用插件 SCoverage。
我试过了:
coverageEnabled in `package` := false
但这不起作用。 所以我寻找一种完全禁用插件的方法。
【问题讨论】:
我不知道你的整个问题的答案,但在构建文件中,package
任务被称为packageBin
(因为package
是一个Scala 关键字)
【参考方案1】:
没有。到执行任务时(在本例中为 packageBin
任务),任务依赖关系图已从所有自动插件加载,并且每个设置/任务都不知道它是否来自插件。一般来说,从今天(0.13.9)开始,您无法在 sbt 中动态启用或禁用插件。
某些插件可能会专门添加扩展点来覆盖某些行为(例如,test in assembly
),但诸如 packageBin
之类的内置任务不知道这些插件。
我试图提出一个名为build level 的概念,这可能与这里有关,但它没有流行起来。
【讨论】:
以上是关于SBT - 如何为特定任务禁用插件(例如“包”)的主要内容,如果未能解决你的问题,请参考以下文章
如何为stream任务的日志成员设置SBT logLevel?