迁移到 Play-2.1 后,我遇到了路由编译器停止为我的路由文件工作的问题。Play-2.0.4 完全没问题,但现在我遇到了构建错误,找不到任何解决方法。
在我的项目中,我使用的是蛋糕模式,因此控制器操作不是通过 可见<package>.<controller class>.<action>
,而是通过<package>.<component registry>.<controller instance>.<action>
. 新的播放路由编译器正在使用除最后两个之外的所有操作路径组件来形成将在托管源中使用的包名称(据我所知,我可以在https://github.com/playframework/Play20/blob/2.1 .0/framework/src/routes-compiler/src/main/scala/play/router/RoutesCompiler.scala)。在我的情况下,它会导致<package>.<component registry>
选择作为包名称的情况,这会在构建过程中导致错误:
[error] server/target/scala-2.10/src_managed/main/com/grumpycats/mmmtg/componentsRegistry/routes.java:5: componentsRegistry is already defined as object componentsRegistry
[error] package com.grumpycats.mmmtg.componentsRegistry;
我制作了示例项目来演示这个问题:https ://github.com/rmihael/play-2.1-routes-problem
是否有可能以某种方式解决此问题而无需为控制器删除蛋糕模式?遗憾的是,由于这个问题,我无法继续使用 Play 2.1。