Playframework 2.0 Play框架是一个容器吗?我不清楚它是如何运行代码的

Playframework 2.0 Play框架是一个容器吗?我不清楚它是如何运行代码的,playframework-2.0,playframework-2.2,Playframework 2.0,Playframework 2.2,因此,当您使用播放工具创建新播放项目时: ~/play-2.2.1/play新建MyProject 它在名为MyProject的新目录中创建一个骨架项目 要运行此项目,请执行以下操作: ~/play-2.2.1/play-run(从MyProject目录中) 这里到底发生了什么?play工具是否将代码从MyProject导入容器(如Tomcat)并运行它?我假设它使用Netty而不是J2EE servlet等。那么为什么我们需要调用“play”程序来运行MyProject目录中的代码呢?“新项目

因此,当您使用播放工具创建新播放项目时:

~/play-2.2.1/play新建MyProject

它在名为MyProject的新目录中创建一个骨架项目

要运行此项目,请执行以下操作:

~/play-2.2.1/play-run(从MyProject目录中)

这里到底发生了什么?play工具是否将代码从MyProject导入容器(如Tomcat)并运行它?我假设它使用Netty而不是J2EE servlet等。那么为什么我们需要调用“play”程序来运行MyProject目录中的代码呢?“新项目”脚本没有复制它所需要的一切吗

我对这里的工作模式有点困惑。如果没有播放/代码to,项目代码似乎不完整


感谢您的建议和指点。

不,这里没有容器。相反,您的应用程序是一个独立的Java应用程序,其中包含Play作为库依赖项,因此在另一个应用程序中没有一个东西

在开发过程中,sbt启动应用程序,您可以将其视为
play
命令的最后一行,这只是一个shell脚本


当您使用
play dist
打包应用程序进行生产时,您会在ZIP文件中获得一个独立的应用程序,例如
target/universal/myapp-1.0-SNAPSHOT.ZIP
。这包含一个以相同方式运行应用程序的shell脚本:请参见
解压-p target/universal/myapp-1.0-SNAPSHOT.zip play-slick-examples-1.0-SNAPSHOT/bin/myapp

您不能从play-2.2.1文件夹运行项目,而是从
MyProject
目录运行项目。在play文件夹中创建项目(或通过全局
play
env变量),但使用
play run
将其运行到特定的项目文件夹中。(假设您已经很好地配置了
play
env变量)很抱歉,我知道。我特别想问的是,为什么我们需要调用另一个程序(play)来运行代码。这不仅仅是一个容器吗?当然要提供编译SBT任务和运行任务(生成编译的Scala模板、管理播放项目的默认SBT任务等),所有任务都要在运行之前管理项目IMHO@Mik378-所以我感觉掌握游戏(Java版本或Scala版本)了解SBT是第一个先决条件?我猜像netty这样的“普通”文件/库不是随play一起提供的,而是在应用程序首次运行时拉下来的?我知道什么了吗?谢谢,在第一次发布时,Play会下载它所需的所有人工制品,除了Play
local
文件夹中已经提供的那些(已经提供了现成的
io.netty
)。我想说,掌握一些SBT基础是玩游戏的先决条件。谢谢,这是非常有用的。所以“play”命令实际上只是sbt的包装,有点像。它是一个SBT插件,添加了一些额外的功能。只要在project/plugins.sbt中包含插件依赖项,就可以直接使用sbt。PlayShell命令只调用具有适当目标的sbt。如果没有容器,我的应用程序负责实现servlet功能?e、 g.当有人发送请求时,谁监听端口并读/写网络套接字?