Scala 确保';重新启动&x27;任务在它之前自动运行:test

Scala 确保';重新启动&x27;任务在它之前自动运行:test,scala,sbt,Scala,Sbt,在运行IntegrationTest目标(it:test)之前,是否可以让重新启动(又称重新启动)任务自动运行 我以为这样就行了: test <<= (test in IntegrationTest) dependsOn reStart 有没有办法解决这个问题?您可以像这样定义特殊的TaskKey类型的任务(): lazy val reStart0=TaskKey[AppProcess](“重新启动-0”) lazy val emptyArgs=SettingKey[revolve

在运行IntegrationTest目标(
it:test
)之前,是否可以让
重新启动
(又称重新启动)任务自动运行

我以为这样就行了:

test <<= (test in IntegrationTest) dependsOn reStart

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

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

lazy val reStart0=TaskKey[AppProcess](“重新启动-0”)
lazy val emptyArgs=SettingKey[revolver.Actions.ExtraCmdLineOptions](“空参数”)
惰性val projectA=Project(
id=“hello-a”,
base=文件(“./a”),
设置=Project.defaultSettings++Revolver.settings
).设置(
emptyArgs:=左轮手枪。动作。外部线条选项(零,零),

reStart0你导入了spray.revolver.RevolverPlugin.revolver.reStart吗?我试过了,但没有成功。它帮助我更进一步…更新了问题以反映。这看起来很有希望。有没有办法从build.sbt中实现这一点?我不喜欢使用build.scala来完成绝对必要的工作。好的。你能给出一个bi吗没有更完整的例子说明“…”后面的位在哪里?我似乎无法理解。说“dependsOn不用于排序”。所以这可能不是正确的方法。我试图使用你的答案,但我无法让它工作。我应该在“你的项目”、“流”中使用什么?我明白了“值测试不是Seq[可与sbt.TestOption序列化的产品]的成员”
build.sbt:54: error: not found: value reStart
test <<= (test in IntegrationTest) dependsOn reStart
                                             ^
[error] Type error in expression
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
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)
)