Scala 玩2.2子项目拆分路由

Scala 玩2.2子项目拆分路由,scala,playframework,Scala,Playframework,我正在做分割Scala/Play的工作!2.2项目分为模块。路由拆分无法编译,但实际的源代码似乎已编译。以下是我认为与问题相关的代码: /build.sbt: import play.Project._ name := "edshare_play" Common.settings playScalaSettings libraryDependencies ++= Common.libraryDependencies routesImport += "_root_.utils.binde

我正在做分割Scala/Play的工作!2.2项目分为模块。路由拆分无法编译,但实际的源代码似乎已编译。以下是我认为与问题相关的代码:

/build.sbt

import play.Project._

name := "edshare_play"

Common.settings

playScalaSettings

libraryDependencies ++= Common.libraryDependencies

routesImport += "_root_.utils.binders._"

resolvers ++= Common.resolvers

scalacOptions ++= Common.scalacOptions

Keys.fork in Test := false

lazy val root = project.in(file("."))
                       .aggregate(core, edmoderator)

lazy val edmoderator = project.in(file("modules/edmoderator"))
                              .dependsOn(core)

lazy val core = project.in(file("modules/core"))
# Moderation API
->  /api/edmoderation               edmoderator.Routes

# Core API
->  /api                            core.Routes
GET     /:entity               controllers.edmoderator.Moderation.getUnmoderated(entity)
PUT     /:entity/:id           controllers.edmoderator.Moderation.moderateDocument(entity, id)
GET     /entity/:entity                     controllers.Entity.list(entity)
/conf/routes

import play.Project._

name := "edshare_play"

Common.settings

playScalaSettings

libraryDependencies ++= Common.libraryDependencies

routesImport += "_root_.utils.binders._"

resolvers ++= Common.resolvers

scalacOptions ++= Common.scalacOptions

Keys.fork in Test := false

lazy val root = project.in(file("."))
                       .aggregate(core, edmoderator)

lazy val edmoderator = project.in(file("modules/edmoderator"))
                              .dependsOn(core)

lazy val core = project.in(file("modules/core"))
# Moderation API
->  /api/edmoderation               edmoderator.Routes

# Core API
->  /api                            core.Routes
GET     /:entity               controllers.edmoderator.Moderation.getUnmoderated(entity)
PUT     /:entity/:id           controllers.edmoderator.Moderation.moderateDocument(entity, id)
GET     /entity/:entity                     controllers.Entity.list(entity)
/modules/edmoderator/conf/edmoderator.routes

import play.Project._

name := "edshare_play"

Common.settings

playScalaSettings

libraryDependencies ++= Common.libraryDependencies

routesImport += "_root_.utils.binders._"

resolvers ++= Common.resolvers

scalacOptions ++= Common.scalacOptions

Keys.fork in Test := false

lazy val root = project.in(file("."))
                       .aggregate(core, edmoderator)

lazy val edmoderator = project.in(file("modules/edmoderator"))
                              .dependsOn(core)

lazy val core = project.in(file("modules/core"))
# Moderation API
->  /api/edmoderation               edmoderator.Routes

# Core API
->  /api                            core.Routes
GET     /:entity               controllers.edmoderator.Moderation.getUnmoderated(entity)
PUT     /:entity/:id           controllers.edmoderator.Moderation.moderateDocument(entity, id)
GET     /entity/:entity                     controllers.Entity.list(entity)
/modules/core/conf/core.Routes

import play.Project._

name := "edshare_play"

Common.settings

playScalaSettings

libraryDependencies ++= Common.libraryDependencies

routesImport += "_root_.utils.binders._"

resolvers ++= Common.resolvers

scalacOptions ++= Common.scalacOptions

Keys.fork in Test := false

lazy val root = project.in(file("."))
                       .aggregate(core, edmoderator)

lazy val edmoderator = project.in(file("modules/edmoderator"))
                              .dependsOn(core)

lazy val core = project.in(file("modules/core"))
# Moderation API
->  /api/edmoderation               edmoderator.Routes

# Core API
->  /api                            core.Routes
GET     /:entity               controllers.edmoderator.Moderation.getUnmoderated(entity)
PUT     /:entity/:id           controllers.edmoderator.Moderation.moderateDocument(entity, id)
GET     /entity/:entity                     controllers.Entity.list(entity)
编译器输出以下内容:

[error] /Users/user/dev/project/play/conf/routes:6: not found: value edmoderator
[error] ->  /api/edmoderation               edmoderator.Routes
[error] /Users/user/dev/project/play/conf/routes:9: not found: value core
[error] ->  /api                            core.Routes
[error] /Users/user/dev/project/play/conf/routes: not found: value edmoderator
[error] /Users/user/dev/project/play/conf/routes:9: not found: value edmoderator
[error] ->  /api                            core.Routes
[error] /Users/user/dev/project/play/conf/routes:6: not found: value handler
[error] ->  /api/edmoderation               edmoderator.Routes
[error] /Users/user/dev/project/play/conf/routes:9: not found: value handler
[error] ->  /api                            core.Routes
[error] 6 errors found

我想我可能在某个地方犯了一个简单的错误,但我找不到。提前感谢您的指点。

我相信您的配置中缺少以下内容:

lazy val root = project.in(file("."))
                        .aggregate(core, edmoderator)
                        .dependsOn(core, edmoderator)
而不仅仅是:

lazy val root = project.in(file("."))
                       .aggregate(core, edmoderator)
您可以在此处查看示例:


是的,这很有道理。谢谢