SBT Autoplugin 和任务修改 "dependsOn"
SBT Autoplugin and task modification with "dependsOn"
我已经为 SBT 项目创建了一个 Autoplugin 以在 Docker 容器中启动中间件以进行集成测试(Zookeeper 和 Kafka)。
我的第一个没有 Autoplugin 的版本是在项目设置中手动添加,例如:
(test in Test) <<= (test in Test) dependsOn zkStart
效果很好。
现在使用自动插件,我有以下代码
override def projectSettings: Seq[Def.Setting[_]] = Seq(
(test in Test) <<= (test in Test) dependsOn ZookeeperPlugin.zkStart
)
但 Zookeeper 不再在测试前启动。
当我做的时候
[core_akka_cluster] $ inspect test
[info] Task: Unit
[info] Description:
[info] Executes all tests.
[info] Provided by:
[info] {file:/Users/xx/Projects/../../}core_akka_cluster/test:test
[info] Defined at:
[info] (sbt.Defaults) Defaults.scala:394
我们可以看到设置 test:test 是由默认 SBT 值提供的。
当我在项目的构建定义中手动添加以前的设置时,这再次起作用,我们有以下分析
[core_akka_cluster] $ inspect test
[info] Task: Unit
[info] Description:
[info] Executes all tests.
[info] Provided by:
[info] [info] {file:/Users/xx/Projects/../../}core_akka_cluster/test:test
[info] Defined at:
[info] (sbt.Defaults) Defaults.scala:394
[info] (com.ingenico.msh.sbt.KafkaPluginSettings) KafkaPlugin.scala:36
对这种情况下的优先级有什么想法吗?
谢谢
您要将自动插件设为触发插件吗?
由于 test
也是由 sbt 的自动插件(JvmPlugin
)添加的,因此您应该需要 JvmPlugin
.
我已经为 SBT 项目创建了一个 Autoplugin 以在 Docker 容器中启动中间件以进行集成测试(Zookeeper 和 Kafka)。
我的第一个没有 Autoplugin 的版本是在项目设置中手动添加,例如:
(test in Test) <<= (test in Test) dependsOn zkStart
效果很好。
现在使用自动插件,我有以下代码
override def projectSettings: Seq[Def.Setting[_]] = Seq(
(test in Test) <<= (test in Test) dependsOn ZookeeperPlugin.zkStart
)
但 Zookeeper 不再在测试前启动。
当我做的时候
[core_akka_cluster] $ inspect test
[info] Task: Unit
[info] Description:
[info] Executes all tests.
[info] Provided by:
[info] {file:/Users/xx/Projects/../../}core_akka_cluster/test:test
[info] Defined at:
[info] (sbt.Defaults) Defaults.scala:394
我们可以看到设置 test:test 是由默认 SBT 值提供的。
当我在项目的构建定义中手动添加以前的设置时,这再次起作用,我们有以下分析
[core_akka_cluster] $ inspect test
[info] Task: Unit
[info] Description:
[info] Executes all tests.
[info] Provided by:
[info] [info] {file:/Users/xx/Projects/../../}core_akka_cluster/test:test
[info] Defined at:
[info] (sbt.Defaults) Defaults.scala:394
[info] (com.ingenico.msh.sbt.KafkaPluginSettings) KafkaPlugin.scala:36
对这种情况下的优先级有什么想法吗?
谢谢
您要将自动插件设为触发插件吗?
由于 test
也是由 sbt 的自动插件(JvmPlugin
)添加的,因此您应该需要 JvmPlugin
.