我正在研究SBT多项目解决方案。
我现在有:
像这样的层次结构:
测试ENV
我想把一些主要的功能和对象像akka ActorSystem放在test-core中,可以在test-proj1和test-proj2中引用。这可以通过在test-env的build.sbt中编写项目依赖来完成,如下所示:
val env = (project in file("."))
val core = (project in file("test-core"))
.aggregate(proj1,proj2)
.settings(
run / aggregate := true
)
lazy val coreRef = LocalProject("core")
lazy val proj1 = (project in file("test-proj1")).dependsOn(coreRef)
lazy val proj2 = (project in file("test-proj2")).dependsOn(coreRef)
但问题是: 当我通过test-proj1和test-proj2引用test-core中定义的ActorSystem时。它们不是相同的ActorSystem。 而且我不想将它们全部放在一个项目中,并将proj1和proj2作为一个包。 那么如何通过这个项目层次结构引用相同的ActorSystem呢?
两个子项目有两个主要功能。 两个主要功能意味着两个应用。 两个申请意味着两个过程。 两个进程意味着默认不共享任何内容
所以上面讨论的子项目层次结构无法解决“相同的ActorSystem实例”问题。