playframework playframework-2.0

playframework - Play Framework: rutas divididas en mĂșltiples archivos sin subproyectos



playframework-2.0 (2)

Mi proyecto de juego es masivo y el archivo de rutas es de aproximadamente 1Mb. Ahora, cuando Scala compila, tengo la excepción "Código de método demasiado grande" debido al enrutamiento y al enrutamiento inverso de los archivos scala creados a partir de mi archivo de rutas (que también son grandes).

Por lo tanto, necesito dividir mi archivo de rutas sin subproyectos. De hecho, no puedo dividir mi proyecto en subproyectos porque sus componentes son interdependientes.

Probé 2 métodos:

  • Agregué un nuevo archivo conf llamado technical.routes, agregué algunas rutas adentro, elimine las mismas rutas de "rutas", e importé el archivo con "-> technical.Routes" Todo se compila, no tengo mi excepción anterior, pero algo está mal porque cuando deja de compilar, comienza una y otra vez ... y nunca termina.

  • Agregué un nuevo archivo conf llamado technical.routes, agregue algunas rutas adentro, elimine las mismas rutas de "route", pero en lugar de importarlo en mi archivo de rutas principal, lo agregué en el archivo conf: "application.router =" Rutas, rutas técnicas "". Pero no funciona porque solo se debe declarar una ruta aquí.

¿Cómo hacer, por favor?


Bueno, el primer método está funcionando. Comencé desde cero y funcionó. Hice un comando limpio antes del comando compilar. Parece que los viejos archivos compilados fueron la causa de mi problema.

Tenga cuidado de tener en cuenta que no puede tener una superposición de nombres de paquetes en los archivos de rutas. Por ejemplo, en este ejemplo, el archivo technical.routes contiene todas las rutas en controllers.technical y el archivo principal de rutas no puede contener ninguna ruta en el paquete controllers.technical .

Contenidos conf/routes :

# Routes # This file defines all application routes (Higher priority routes first) # ~~~~ -> /technical technical.Routes GET / controllers.Dashboard.index()

Contenidos de conf/technical.routes :

# Routes # ~~~~ GET / controllers.technical.App.index()


Si su nombre de archivo es technical.routes, mientras incluye el archivo, mencione technical.Routes (mayúsculas).

El parámetro después de -> es el prefijo url, por lo que para acceder a cualquier url del archivo technical.routes, debe agregar el prefijo.

http: //127.0.01/ technical / {url definido en el archivo technical.routes}