启动控制台
play控制台是基于sbt开发的控制台,它允许你管理一个play应用的整个发展周期。
为了启动Play控制台,先改变你的项目路径,然后运行Activator:
$ cd my-first-app
$ activator
获得帮助
使用help命令来获得有效命令的基本帮助。你也可以用特殊的命令来来使用这些帮助来得到那些命令的有关信息:
[my-first-app] $ help run
在开发模式中运行服务器
使用run命令在开发模式中运行目前的应用:
[my-first-app] $ run
在该模式中,服务器将会使用重载功能来自动启动,这意味着对于每个请求,Play将会检查你的项目并重新编译需要的资源。如果有需要的的话,项目将会自动重启。
如果编译中出现错误,你将会直接在浏览器中看到编译结果。
如果要停止服务器,按ctrl+D,然后你就会返回到Play控制台提示。
编译
在Play中,你可以不用运行服务器就能编译你的应用。只需使用compile命令:
[my-first-app] $ compile
运行测试
类似上面的命令,你不用运行服务器也可以运行你的测试。只需要使用test命令:
[my-first-app] $ test
启动交互式控制台
输入consoleScala的交互式控制台,它将会允许你交互的测试代码:
[my-first-app] $ console
在Scala控制台里开始应用(比如:进入数据库):
import play.api._
val env = Environment(new java.io.File("."), this.getClass.getClassLoader, Mode.Dev)
val context = ApplicationLoader.createContext(env)
val loader = ApplicationLoader(context)
val app = loader.load(context)
Play.start(app)
调试
启动控制台的时候,你可以要求Play开始一个JPDA调试,然后你就可以使用java调试器连接,使用activator-jvm-debug<port>命令来完成:
$ activator-jvm-debug 9999
当一个JPDA端口有效的时候,JVM将会在引导的时候记录这一行:
Listening for transport dt_socket at address: 9999
使用sbt特征
Play控制台只是一个普通的sbt控制台,所以你可以使用sbt特征,比如triggered execution.
比如说,使用~compile
[my-first-app] $ ~compile
这样你每一次改变资源文件,编译就会启动一次。
如果你使用~run:
[my-first-app] $ ~ run
当一个开发服务器运行的时候,编译才会被启动。
你也可以像~test一样,当你修改一个资源文件的时候持续地测试项目:
[my-first-app] $ ~ test
直接使用play命令
你也可以直接运行命令而不进入控制台,比如说,输入activator run:
$ activator run
[info] Loading project definition from /Users/jroper/tmp/my-first-app/project
[info] Set current project to my-first-app (in build file:/Users/jroper/tmp/my-first-app/)
--- (Running the application from SBT, auto-reloading is enabled) ---
[info] play - Listening for HTTP on /0:0:0:0:0:0:0:0:9000
(Server started, use Ctrl+D to stop and go back to the console...)
这个应用将会直接开始,当你使用Ctrl+D来停止服务器的时候,你将会返回到系统提示。当然,触发执行在这里也是有效的:
$ activator ~run