在 Play 应用程序中添加 SIRD 时出现编译错误

compilation error when a SIRD is added in the Play application

我有一个使用 Play 编译路由的工作项目。我想添加 SIRD 路由来处理一些网络服务。编译后的路线将保留。

我创建了一个 routes.users 包并在其中添加了以下 UserRoutes scala class。

package routes.users
import javax.inject.Inject
import play.api.mvc._
import play.api.routing.Router.Routes
import play.api.routing.SimpleRouter
import play.api.routing.sird._
import controllers.UserController

class UserRouter @Inject()(controller:UserController) extends SimpleRouter {

  override def routes:Routes = {
    case GET(p"/users/add") => controller.addUser();
  }

当我尝试编译代码时,出现以下错误。

error] error writing routes/users/UserRouter: C:\...\target\scala-2.12\classes/routes/users/UserRouter.class: C:\...\target\scala-2.12\classes\routes is not a directory
[error] error writing routes/users/UserRouter$$anonfun$routes: C:\...\target\scala-2.12\classes/routes/users/UserRouter$$anonfun$routes.class: C:\...\target\scala-2.12\classes\routes is not a directory
[error] two errors found
[error] (compile:compileIncremental) Compilation failed

如果我删除 routes.users 包,代码将编译并运行。我犯了什么错误?

是的,正如您所说,问题出在名称上。

我不完全了解确切的细节,但我很确定路由用于反向路由,我之前曾尝试制作自己的路由包,但由于与您正确的相同原因,它导致了问题现在。好像是命名冲突。

来自Play Framework Documentation