SBT不允许我在多项目构建中的不同项目的不同配置之间存在依赖关系的原因是什么?
考虑主build.sbt
文件中的以下设置:
lazy val domain: Project = project in file("domain") dependsOn(testUtils % "test->test")
lazy val testUtils: Project = project in file("testUtils") dependsOn(domain % "compile->test")
...
我想在testUtils
中编写我的所有测试助手,并让每个其他项目的测试代码都是干净的测试逻辑,而不需要(有时在不同项目中重复)辅助方法的样板。 / p>
SBT迫使我放置: Project
类型,因为它抱怨值是“递归的”。重装后,我得到:
...
at $281429c805669a7befa4$.domain(build.sbt:142)
at $281429c805669a7befa4$.testUtils$lzycompute(build.sbt:144)
at $281429c805669a7befa4$.testUtils(build.sbt:144)
at $281429c805669a7befa4$.domain$lzycompute(build.sbt:142)
at $281429c805669a7befa4$.domain(build.sbt:142)
[error] java.lang.StackOverflowError
[error] Use 'last' for the full log.
有没有办法解决这个问题?或者我应该在每个模块测试中编写与测试相关的逻辑,即使代价是减少组织,许多"test->test"
依赖等等......