【问题标题】:SBT - How to disable a plugin for a specific task (e.g. "package")SBT - 如何为特定任务禁用插件(例如“包”)
【发布时间】:2016-03-21 02:53:01
【问题描述】:

有没有办法为特定任务禁用 SBT 插件(AutoPlugin)。

例如,我想在打包时禁用插件 SCoverage。

我试过了:

coverageEnabled in `package` := false

但这不起作用。 所以我寻找一种完全禁用插件的方法。

【问题讨论】:

  • 我不知道你的整个问题的答案,但在构建文件中,package 任务被称为packageBin(因为package 是一个Scala 关键字)

标签: sbt sbt-plugin


【解决方案1】:

没有。到执行任务时(在本例中为 packageBin 任务),任务依赖关系图已从所有自动插件加载,并且每个设置/任务都不知道它是否来自插件。一般来说,从今天(0.13.9)开始,您无法在 sbt 中动态启用或禁用插件。

某些插件可能会专门添加扩展点来覆盖某些行为(例如,test in assembly),但诸如 packageBin 之类的内置任务不知道这些插件。

我试图提出一个名为build level 的概念,这可能与这里有关,但它没有流行起来。

【讨论】:

    猜你喜欢
    • 2012-12-28
    • 2023-03-14
    • 2016-04-06
    • 2014-08-21
    • 2012-08-04
    • 1970-01-01
    • 2023-03-26
    • 2012-07-30
    • 2014-04-03
    相关资源
    最近更新 更多