3

我正在创建一个插件,该插件将修改 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。这是最好的方式,自定义配置或新任务。

4

0 回答 0