不能在Play子项目中使用sbt 0.13.7

Sal*_*lem 4 sbt playframework

我有一个由两个子项目(common和common2)组成的Play 2.3.8项目示例:

$ tree -L 2 .
.
??? build.sbt
??? common
?   ??? app
?   ??? build.sbt
?   ??? conf
??? common2
?   ??? app
?   ??? build.sbt
?   ??? conf
??? conf
?   (...)
??? build.sbt
Run Code Online (Sandbox Code Playgroud)

主要build.sbt是对这两个子项目的依赖性定义为:

lazy val common = (project in file("common")).enablePlugins(PlayJava)

lazy val common2 = (project in file("common2")).enablePlugins(PlayJava)

lazy val main = (project in file(".")).enablePlugins(PlayJava)
                    .aggregate(common, common2).dependsOn(common, common2)
Run Code Online (Sandbox Code Playgroud)

这按预期工作.现在我试图使这个项目使用sbt 0.13.7(目前它使用0.13.5),当我启动激活器时,我总是得到这样的错误(Test是我项目的根目录):

[info] Done updating.
java.lang.RuntimeException: No project 'common' in 'file:/home/user/Desktop/Test/'.
Valid project IDs: main
    at scala.sys.package$.error(package.scala:27)
    // OMITTED
    at xsbt.boot.Boot.main(Boot.scala)
[error] No project 'common' in 'file:/home/user/Desktop/Test/'.
[error] Valid project IDs: main
[error] Use 'last' for the full log.
Run Code Online (Sandbox Code Playgroud)

那可能是什么问题呢?有可能定义子项目的变化吗?我看过0.13.5到0.13.7 的变化,找不到与此相关的任何内容......

Sal*_*lem 6

事实上,似乎在0.13.5和0.13.6之间发生了变化.在我的示例项目中,我在main中定义了所有子项目build.sbt,但也在subprojects文件夹中重新定义了它们.

因此,common/build.sbt例如,子项目再次定义为

lazy val main = (project in file(".")).enablePlugins(PlayJava)
Run Code Online (Sandbox Code Playgroud)

这在0.13.5中运行良好,但在此之后中断.

因此,解决方案是删除这些行,并仅在主要中定义子项目build.sbt.