sbt 取决于 % "compile->compile;test->test"
sbt dependsOn % "compile->compile;test->test"
我一直在努力理解“compile->compile;test->test”是干什么用的,但是看了sbt页面后我还是不明白...
假设我在 build.sbt
中有这个
lazy val `api` = project.dependsOn(`domain` % "compile->compile;test->test")
...
lazy val `domain` = project...
如果我删除“compile->compile;test->test”有什么区别
lazy val `api` = project.dependsOn(`domain`)
...
lazy val `domain` = project...
如果我只放“test->test”怎么办?还是“编译->编译”?
查看正在发生的事情的有用命令是
show api / Test / dependencyClasspath
show api / Compile / dependencyClasspath
这将揭示确切的类路径。
if I remove "compile->compile;test->test"
lazy val api = project.dependsOn(domain)
等同于
lazy val api = project.dependsOn(domain % "compile->compile")
表示 api / Compile
配置取决于 domain / Compile
。如果你执行 show api / Test / dependencyClasspath
那么你应该看到 domain
的测试类路径不存在。
What if I only put "test->test"?
lazy val api = project.dependsOn(domain % "test->test")
意味着 api / Test
依赖于 domain / Test
并且执行 show api / Test / dependencyClasspath
应该显示 domain
的 test
类路径存在。但是执行 show api / Compile / dependencyClasspath
应该会显示 domain
的 compile
类路径不存在。
因此如果你想让api / Test
依赖于domain / Test
,而api / Compile
依赖于domain / Compile
,那么你必须指定
lazy val api = project.dependsOn(domain % "compile->compile;test->test")
我一直在努力理解“compile->compile;test->test”是干什么用的,但是看了sbt页面后我还是不明白...
假设我在 build.sbt
中有这个lazy val `api` = project.dependsOn(`domain` % "compile->compile;test->test")
...
lazy val `domain` = project...
如果我删除“compile->compile;test->test”有什么区别
lazy val `api` = project.dependsOn(`domain`)
...
lazy val `domain` = project...
如果我只放“test->test”怎么办?还是“编译->编译”?
查看正在发生的事情的有用命令是
show api / Test / dependencyClasspath
show api / Compile / dependencyClasspath
这将揭示确切的类路径。
if I remove "compile->compile;test->test"
lazy val api = project.dependsOn(domain)
等同于
lazy val api = project.dependsOn(domain % "compile->compile")
表示 api / Compile
配置取决于 domain / Compile
。如果你执行 show api / Test / dependencyClasspath
那么你应该看到 domain
的测试类路径不存在。
What if I only put "test->test"?
lazy val api = project.dependsOn(domain % "test->test")
意味着 api / Test
依赖于 domain / Test
并且执行 show api / Test / dependencyClasspath
应该显示 domain
的 test
类路径存在。但是执行 show api / Compile / dependencyClasspath
应该会显示 domain
的 compile
类路径不存在。
因此如果你想让api / Test
依赖于domain / Test
,而api / Compile
依赖于domain / Compile
,那么你必须指定
lazy val api = project.dependsOn(domain % "compile->compile;test->test")