为什么 Play Framework 2.3.8 部署不起作用?

Why does Play Framework 2.3.8 Deployment not work?

我用play framework 2.3.8写了一个程序,名字叫quizSystem。 它使用内存数据库、一些控制器、视图类等。

现在我想 运行 我的程序在另一台机器上(windows 7 安装了 JDK 8u45 并且 PATH 设置为 JDK),因此我 运行 activator dist 在机器 1 上,并获得了一个包含我的程序快照的 .zip 文件。我将这个 zip 文件复制到机器 2,将其解压缩并使用控制台转到 /bin 文件夹。其中有 2 个文件 quizSystemquizSystem.bat

所以我输入了quizSystem

错误:Oops, cannot start the server ... Database 'default' needs evolution

所以我尝试了这个:quizSystem -DapplyEvolutions=true
错误:Bad application path: -DapplyEvolutions=true

然后我将 applyEvolutions=true 行添加到 application.conf 文件中。

但是,无论我使用哪个命令,我都可以启动程序。 我搜索并尝试了很多解决方案,例如:Play Framework 2.1.1 Deployment Issues

为什么进化/我的程序不工作?

找到解决方案:

目前播放框架中似乎有一个(公开的?)错误: https://github.com/playframework/playframework/issues/3081

如果我理解正确,java 的输入参数顺序在游戏框架中是错误的。这就是控制台手动输入产生错误的原因...

下面是生成工作部署程序的完整步骤列表:

1) 在你的目录中输入 activator dist 到控制台

2) 你在 /target/universal 目录中得到一个 zip 文件(包含单词 SNAPSHOT 或类似的

3) 在您的目标机器上,您需要安装 JDK,转到此处:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

4) 提取您的 zip 文件,在 /bin 文件夹中编辑 .bat 文件

5) 搜索 set "APP_MAIN_CLASS=play.core.server.NettyServer" 并更改为

set "APP_MAIN_CLASS= -DapplyEvolutions.default=true play.core.server.NettyServer"

6) 然后只需使用控制台导航到该文件夹​​并键入您的程序名称

我希望这能让其他人免于数小时的沮丧和绝望

以及大量的喊叫和咒骂 :D