【发布时间】:2015-02-05 04:28:42
【问题描述】:
我为 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
对这种情况下的优先级有什么想法吗?
谢谢
【问题讨论】:
标签: sbt