playframework - 不能将 sbt 0.13.7 与 Play 子项目一起使用

标签 playframework sbt

我有一个 sample Play 2.3.8 project由两个子项目(common 和 common2)组成:

$ tree -L 2 .
.
├── build.sbt
├── common
│   ├── app
│   ├── build.sbt
│   ├── conf
├── common2
│   ├── app
│   ├── build.sbt
│   ├── conf
├── conf
│   (...)
├── build.sbt

并在主要 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)

这按预期工作。现在我试图让这个项目使用 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.

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

最佳答案

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

所以在 common/build.sbt例如,子项目再次定义为

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

这在 0.13.5 中运行良好,但在那之后会中断。

所以解决方案是删除这些行,只在主 build.sbt 中定义子项目。 .

关于playframework - 不能将 sbt 0.13.7 与 Play 子项目一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28640254/

相关文章:

java - 检查表单是否有空值

java - Play 2.5 : Form validation - on error, 表单值为 "Optional.empty"

java - scala (jar) 库的着色依赖关系

jdbc - db 模块 "play db:import"给出此异常

java - Play Framework 2 : Best way of validating individual model fields separately

java - 从 application.conf 加载自定义conf文件时出错

scala - 在 sbt 中编译子项目

sbt - 如何使SBT任务失败并因此自行构建?

java - 如何在Play项目中添加Play Ebean?

java - 如何将 webapp_config.txt 包含到 Play 的 dist zip 中?