问题标签 [sbt-plugin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2936 浏览

scala - SBT 插件 - 通过他们的 build.sbt 用户定义的命令配置

我正在编写一个添加命令的 SBT 插件,并希望用户能够通过在build.sbt. 实现这一目标的最简单方法是什么?

这是插件外观的简化示例:

我希望有人能够将以下内容添加到他们的build.sbt文件中:

如何String从上面的命令中将其作为变量提供myCommand

0 投票
0 回答
221 浏览

sbt - SBT插件修改编译和测试任务

我正在创建一个插件,该插件将修改 compile:compile 和 test:test 任务。我的最终目标是能够做到sbt monkjacksbt monkjack:test(要么都可以)。在 compile:compile 范围内我需要添加一个编译器插件,在 test:test 范围内我需要在测试完成后运行一些代码。

我的第一次尝试是尝试创建一个自定义配置,但是扩展、编译或测试哪个配置不清楚,因为两者都需要(目前我有两个,我将 CustomTest 复制到 CustomCompile 然后运行monkjack:test)。我的第二次尝试专注于一个自定义任务,该任务在设置各种选项后依次调用 (compile in Compile).value 和 (test in Test).value。

我意识到我对 SBT 任务的了解以及它们是如何相关/继承/范围的并不是很好。

Q1。是否有像 maven 这样的任务链?在maven中,如果你执行测试,它将按顺序执行其他阶段。所以 mvn clean test 将自动运行准备源、编译等。所以在 SBT 中,如果我运行sbt test其他任务是如何自动执行的。

Q2。如果您使用自定义配置执行任务,例如sbt millertime:test,该配置是否会传播到正在运行的其他任务。例如,这是否与相同sbt monkjack:compile monkjack:test或相同sbt compile monkjack:test或都不相同:)

Q3。任务如何知道它们的默认配置是什么?如果我这样做sbt compile,SBT 怎么知道这意味着sbt compile:compile什么?

Q4。这是最好的方式,自定义配置或新任务。

0 投票
1 回答
858 浏览

sbt - Sbt Plugin 添加依赖到 project/build.sbt

我有一个 sbt 插件,当启用它时,它会通过 scalac 选项添加一个 scalac 编译器插件。一切都很好。

但是,如果 scalac 编译器插件本身具有它需要使用的依赖项,我无法让它工作。我试过了:

  • 将依赖项添加到目标项目 libraryDependencies
  • 将其指定为 sbt-plugin 本身的依赖项。

我认为我需要做的是(它是一个自动插件):

如果projectsPluginsDependencies是有效键。这可能吗?

(事实上​​,我什至不确定如何手动将依赖项添加到最终项目中。如果编译器插件需要依赖项 X,您如何满足?我尝试将其添加到 project/build.sbt 中,但没有工作)。

只是为了超级清楚-我不是在问如何添加 sbt-plugin 需要的依赖项。我在问如何添加编译器插件需要的依赖项,它本身是由 sbt-plugin 添加的。

0 投票
1 回答
463 浏览

scala - 如何从 AutoPlugin 修改 Compile 中的 sourceGenerators?

我正在使用新的 AutoPlugin 机制为 sbt 编写代码生成插件。我需要修改sourceGenerators in Compile设置,但不知何故,当我从插件中进行操作时它不起作用。调用 compile 后,屏幕上没有打印任何内容。

但是,如果我突然将这条线sourceGenerators in Compile <+= (mySourceGenerator in Compile)移到项目的位置,则设置会被修改,并且当我运行编译任务时,消息会写入屏幕。build.sbtsourceGenerators in Compile

那里有我想念的东西吗?插件的代码在这里:

0 投票
2 回答
1178 浏览

sbt - 如何从 AutoPlugin 覆盖默认任务?

假设我要覆盖(替换)packageBin任务的默认设置。所以我天真地写了一个这样的 AutoPlugin:

但这不起作用(至少不适用于 SBT 0.13.5 和 0.13.6-M1),我的版本packageBin永远不会被调用。如果我将以下行放在我的项目build.sbt文件中,那么它可以工作。

是否有可能通过 AutoPlugin 或经典插件实现这一点,如果可以,如何实现?

0 投票
1 回答
530 浏览

scala - 无法从 AutoPlugin 的命令运行自定义 sbt 任务

我尝试了我能想到的所有方法,但运行 taskB 仍然会出现错误消息,即如果我将它放在自定义配置中,*/*:taskB或者在其中未定义任务。*/cmd:taskB

调试它时,似乎该任务不存在于structure.data搜索它的位置。

0 投票
1 回答
97 浏览

sbt - 为什么 sbt 转向 AutoPlugin?

我最近被告知我的 sbt 插件不能使用神奇的新“自动插件”功能,这是推荐的机制。

  1. 为什么 sbt 这样做?
  2. 所有插件都必须更新吗?
  3. 它会支持 sonatype 快照版本吗?

我们的一位用户告知我不支持快照,但我无法找到明确的答案。当我们在稳定版本之间使用滚动版本时,我们将遇到严重的问题。

在我看来,如果 sbt 期望所有作者都做出改变来支持这一点,那将是一场灾难。sbt 的真正价值在于它有如此多的插件,如果做出的更改排除了其中一些插件,那么我们都会受苦。

0 投票
0 回答
76 浏览

sbt - 为什么 sbt-jsHint 没有在“sbt jshint”命令上执行?

我正在使用 typeFace 的 sbt-jsHint 插件:https ://github.com/sbt/sbt-jshint

遵循文档中提到的步骤,但无法运行“sbt jshint”并在 sbt 控制台中出现无效命令错误。

问题: 1. 使用 sbt 运行 jsHint 的最佳方式是什么?

尝试了另一个 sbt-jslint 插件并没有为我工作

谢谢,桑迪普

0 投票
1 回答
70 浏览

scala - SBT 插件仅适用于您的本地机器

很多时候,我需要添加不适用于项目但仅适用于我自己的 SBT 插件。例如,我使用 eclipse 作为我的 IDE,所以我想为我的所有 SBT 项目启用这个插件,而不必将它包含在 plugin.sbt 文件中。这是因为我的同事可能正在使用不同的编辑器,因此将此插件签入源代码管理是没有意义的。这可能吗?

0 投票
1 回答
101 浏览

sbt - 在 SBT 中,是否可以使用 AutoPlugin 将 IntegrationTest 配置添加到项目中?

我正在开发一个 AutoPlugin,我希望它将IntegrationTest配置添加到启用该插件的项目中。这可能吗?

我的第一个想法是这可能在 中是可能的buildSettings,但是我看到的添加IntegrationTest配置显示的示例是通过对Project实例的方法调用实现的......即(来自 SBT 文档):