Nel modulo play-swagger
, abbiamo usato il play.routes.compiler.RoutesFileParser
per ottenere tutte le rotte registrati dal gioco e in seguito li analizzare a una documentazione API:Ottieni percorsi automaticamente in Play! 2.5.x quadro
val parsedRoutes = RoutesFileParser.parse(new File(app.classloader.getResource(routesFile).toURI))
val routes = parsedRoutes.right.get.collect {
case (route: PlayRoute) => {
logger.debug(s"Adding route '$route'")
Seq(route.copy(path = route.path.copy(parts = StaticPart(prefix + "/") +: route.path.parts)))
}
case (include: PlayInclude) => {
logger.debug(s"Processing route include $include")
parseRoutesHelper(playRoutesClassNameToFileName(include.router), include.prefix)
}
}.flatten
Il risultato è il seguente errore: java.lang.NoClassDefFoundError: play/routes/compiler/RoutesFileParser
Sembra che lo RoutesFileParser
sia diventato privato in Play! 2.5.
Qual è il modo corretto di recuperare tutti i percorsi di riproduzione come nell'esempio sopra riportato?
Ho controllato la cronologia git di RoutesFileParser e non ho trovato nessuna modifica importante da 2.4.0. L'oggetto è pubblico con il metodo di analisi pubblico e la classe è privata come per il gioco 2.4.0. https://github.com/playframework/playframework/commits/master/framework/src/routes-compiler/src/main/scala/play/routes/compiler/RoutesFileParser.scala Non è una risposta alla tua domanda ma forse il il problema è altrove, librerie mancanti, versioni sbagliate, ... –