Playframework 播放框架:在没有子项目的多个文件中拆分路由

Playframework 播放框架:在没有子项目的多个文件中拆分路由,playframework,playframework-2.0,Playframework,Playframework 2.0,我的play项目非常庞大,路由文件大约为1Mb。现在,当scala编译时,我有一个异常“方法代码太大”,因为路由和反向路由scala文件是从我的路由文件(太大)创建的 因此,我需要拆分没有子项目的routes文件。事实上,我不能将我的项目分割成子项目,因为它的组件是相互依赖的 我尝试了两种方法: 我添加了一个名为technical.routes的新conf文件,在其中添加了一些路由,从“routes”中删除相同的路由,并使用“->technical.routes”导入该文件 所有的东西都会编译

我的play项目非常庞大,路由文件大约为1Mb。现在,当scala编译时,我有一个异常“方法代码太大”,因为路由和反向路由scala文件是从我的路由文件(太大)创建的

因此,我需要拆分没有子项目的routes文件。事实上,我不能将我的项目分割成子项目,因为它的组件是相互依赖的

我尝试了两种方法:

  • 我添加了一个名为technical.routes的新conf文件,在其中添加了一些路由,从“routes”中删除相同的路由,并使用“->technical.routes”导入该文件 所有的东西都会编译,我没有以前的异常,但有点不对劲,因为当它停止编译时,它会一次又一次地开始。。。永远不会结束

  • 我添加了一个名为technical.routes的新conf文件,在其中添加了一些路由,从“routes”中删除了相同的路由,但没有将其导入主路由文件,而是将其添加到conf文件:“application.router=“routes,technical.routes”。 但它不起作用,因为只有一条路线必须在这里声明


请问怎么办?

嗯,第一种方法是有效的。我白手起家,成功了。在compile命令之前,我执行了一个clean命令。似乎是旧的编译文件导致了我的问题

请注意,routes文件中的包名称不能重叠。例如,在本例中,
technical.routes
文件包含
controllers.technical
中的所有路由,而主路由文件不能包含
controllers.technical
包中的任何路由

conf/routes
内容:

# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~

->  /technical technical.Routes

GET     /        controllers.Dashboard.index()
# Routes
# ~~~~

GET     /        controllers.technical.App.index()
conf/technical.routes
内容:

# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~

->  /technical technical.Routes

GET     /        controllers.Dashboard.index()
# Routes
# ~~~~

GET     /        controllers.technical.App.index()

如果文件名为technical.routes, 在包含该文件时,请提及technical.Routes(caps)

->之后的参数是url前缀,因此要访问technical.routes文件的任何url,需要添加前缀


technical/{technical.routes文件中定义的url}

好的,第一种方法正在工作。我白手起家,成功了。在compile命令之前,我执行了一个clean命令。似乎是旧的编译文件导致了我的问题。太好了!仅供参考,你的答案最好再多一点代码/一个很好的例子。这对我不起作用。请提供路由文件的示例好吗?您需要在
build.sbt
中添加此示例,以使多个路由文件工作
scalacOptions++=Seq(//在控制台中显示警告功能详细信息“-feature”,//启用路由文件拆分“-language:reflectCalls”)
不适用于我获取以下信息错误[error]/home/conf/routes:7:对象路由不是包com.store[error]->/storeDetails com.store.routes请注意,拆分路由文件必须放入其自己的包中,否则将出现错误()。一个有效的例子: