sbt 取决于 % "compile->compile;test->test"



我一直在努力理解什么"编译->编写测试->测试";是的,但在sbt页面上阅读后,我仍然不明白。。。

假设我在build.sbt 中有这个

lazy val `api` = project.dependsOn(`domain` % "compile->compile;test->test")
...
lazy val `domain` = project...

如果我去掉";编译->编写测试->测试";

lazy val `api` = project.dependsOn(`domain`)
...
lazy val `domain` = project...

如果我只把";测试->测试";?或者";编译->编译";?

是查看发生了什么的有用命令

show api / Test / dependencyClasspath
show api / Compile / dependencyClasspath

这将揭示确切的类路径。

如果我删除";编译->编写测试->测试";

lazy val api = project.dependsOn(domain)

相当于

lazy val api = project.dependsOn(domain % "compile->compile")

意味着CCD_ 1配置依赖于CCD_。如果您执行show api / Test / dependencyClasspath,那么您应该看到domain的测试类路径不存在。

如果我只把";测试->测试";?

lazy val api = project.dependsOn(domain % "test->test")

意味着api / Test依赖于domain / Test,并且执行show api / Test / dependencyClasspath应该显示存在domaintest类路径。但是,执行api / Compile0应该会发现domaincompile类路径不存在。

因此,如果您希望api / Test依赖于domain / Testapi / Compile依赖于domain / Compile,则必须指定

lazy val api = project.dependsOn(domain % "compile->compile;test->test")

最新更新