我一直在试图理解“编译->编译;测试->测试”是为了什么,但是在阅读了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...如果我只写“测试->测试”呢?还是“编译->编译”?
发布于 2021-05-06 00:59:12
查看正在发生的事情的有用命令是
show api / Test / dependencyClasspath
show api / Compile / dependencyClasspath这将揭示准确的类路径。
如果删除“编译->编译;测试->测试”,则为
。
lazy val api = project.dependsOn(domain)等于
lazy val api = project.dependsOn(domain % "compile->compile")这意味着api / Compile配置依赖于domain / Compile。如果您执行show api / Test / dependencyClasspath,那么您应该会看到domain的测试类路径不存在。
,如果我只放"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")https://stackoverflow.com/questions/67410044
复制相似问题