我为SBT项目创建了一个Autoplugin,用于在Docker容器中启动中间件以进行集成测试(Zookeeper和Kafka)。
我没有Autoplugin的第一个版本是在项目设置中手动添加,例如:
(test in Test) <<= (test in Test) dependsOn zkStart
这很有效。
现在使用Autoplugin,我有以下代码
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
我们可以看到设置测试:测试是由默认的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
在这种情况下是否有关于优先权的想法?
谢谢
答案 0 :(得分:1)
您是否将自动插件设为触发插件?
由于sbt的自动插件(test
)也添加了JvmPlugin
,因此您需要JvmPlugin
。