re-start在运行IntegrationTest目标(it:test)之前,是否可以让(又名reStart)任务自动运行?
我以为这样做会:
test <<= (test in IntegrationTest) dependsOn reStart
Run Code Online (Sandbox Code Playgroud)
但是,我收到此错误:
build.sbt:54: error: not found: value reStart
test <<= (test in IntegrationTest) dependsOn reStart
^
[error] Type error in expression
Run Code Online (Sandbox Code Playgroud)
通过添加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
Run Code Online (Sandbox Code Playgroud)
有没有办法解决这个问题?
TaskKey您可以为此定义特殊类型的任务(工作示例):
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)
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
670 次 |
| 最近记录: |