scala - 确保 're-start' 任务在 :test 之前自动运行

标签 scala sbt

是否有可能获得 re-start (又名重新启动)任务在我运行 IntegrationTest 目标( it:test )之前自动运行?

我认为这会做到:

test <<= (test in IntegrationTest) dependsOn reStart

但是,我收到此错误:
build.sbt:54: error: not found: value reStart
test <<= (test in IntegrationTest) dependsOn reStart
                                             ^
[error] Type error in expression

通过添加 import Revolver._我走得更远,但它仍然失败。但是,现在我得到了一个更具描述性的错误:
build.sbt:55: error: type mismatch;
 found   : sbt.InputKey[spray.revolver.AppProcess]
 required: sbt.Scoped.AnyInitTask
    (which expands to)  sbt.Def.Initialize[sbt.Task[T]] forSome { type T }
test in IntegrationTest <<= (test in IntegrationTest) dependsOn reStart

有没有办法解决这个问题?

最佳答案

您可以定义特殊 TaskKey像这样的类型任务( working example ):

lazy val reStart0 = TaskKey[AppProcess]("re-start-0")
lazy val emptyArgs = SettingKey[revolver.Actions.ExtraCmdLineOptions]("empty-args")

lazy val projectA = Project(
  id = "hello-a",
  base = file("./a"),
  settings = Project.defaultSettings ++ Revolver.settings
).settings(
  emptyArgs := revolver.Actions.ExtraCmdLineOptions(Nil, Nil),
  reStart0 <<= {
  (streams, Revolver.reLogTag, thisProjectRef, Revolver.reForkOptions, mainClass in Revolver.reStart, fullClasspath in Runtime, Revolver.reStartArgs, emptyArgs)
     .map(revolver.Actions.restartApp)
     .dependsOn(products in Compile)
  }
)

lazy val projectB = Project(
  id = "hello-b",
  base = file("./b"),
  settings = Project.defaultSettings ++ Revolver.settings ++ Defaults.itSettings)
.configs(IntegrationTest)
.settings(
  test in (IntegrationTest) <<= (test in IntegrationTest).dependsOn(reStart0 in projectA)
)

关于scala - 确保 're-start' 任务在 :test 之前自动运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21307984/

相关文章:

scala - IntelliJ IDEA 提示 'broken source path' 用于 sbt 驱动的项目

java - sbt:避免 java 子项目中的多个组装/发布步骤

playframework-2.0 - Playframework 2.2 解析器

scala - 如何使用 sbt-assembly 插件强制将提供的依赖项添加到 fat jar?

performance - Spark 性能 - 如何并行化大循环?

java - NiFi开发自定义处理器: import org. apache.nifi.processors错误

sbt 上的 ScalaTest 没有运行任何测试

scala - 在没有显式匹配的情况下确定具体类型

syntax - scala 将多个函数调用参数合并到一个元组中——可以禁用它吗?

scala - 将现有的 sbt 项目导入 IntelliJ