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?

如何为 sbt/play 禁用彩色终端输出?

如何为构建应用程序的当前事件创建sbt插件?

如何为 sbt-native-package 指定 RPM_BUILD_ROOT

如何为 sbt 设置堆大小?

如何为特定活动禁用 Android 软键盘?