我正在尝试迁移使用SBTSubProjects播放2.4的播放2.3(java)项目,现在我遇到了一些路由问题。
sample project显示我的问题
该项目使用三个子项目(管理员,网站和公共):
build.sbt:
lazy val root = (project in file(".")).enablePlugins(PlayJava).dependsOn(admin, website).aggregate(website, admin)
lazy val common = (project in file("modules/common")).enablePlugins(PlayJava)
lazy val admin = (project in file("modules/admin")).enablePlugins(PlayJava).dependsOn(common)
lazy val website = (project in file("modules/website")).enablePlugins(PlayJava).dependsOn(common)
routesGenerator := InjectedRoutesGenerator
conf/routes:
-> /admin admin.Routes
-> /website website.Routes
使用2.3可以启动应用程序"激活器运行"使用" root" -project然后通过调用/ admin或/ website它使用相应的子项目路由。对2.4做同样的事情我只获得了资产路径错误的admin-routes。使用" project"将活动项目切换到管理员或网站时项目路由按预期工作。
我如何获得与以前相同的行为? 感谢
答案 0 :(得分:2)
从2.3升级到2.4时我遇到了完全相同的问题,并修复了它。关键是为根项目设置默认的application.conf
在根项目的build.sbt中,添加此行以确保它始终使用根配置
Keys.javaOptions+="-Dconfig.file=conf/application.conf"
这也可能是导致问题的原因,因为如果没有设置,Play可能会选择任何application.conf,如果它从子项目中选择一个,在您的情况下,它似乎是管理项目,而且只有管理路线。