将播放框架应用程序部署到prod系统的正确方法

时间:2012-03-20 14:39:10

标签: playframework

我使用application.conf文件中的以下设置编译了我的应用程序

# Application mode
# ~~~~~
# Set to dev to enable instant reloading and other development help.
# Otherwise set to prod.
application.mode=prod
%prod.application.mode=prod

然后我使用cmd

play war myapp -o myapp --zip

然后部署到生产。

当我查看tomcat / webapps / myapp / web-inf目录时 我可以看到java类以及Netbeans的设置文件(使用Netbeans作为我的IDE)

在从Prod系统部署编译和创建WAR文件时,是否应该使用详细信息?

2 个答案:

答案 0 :(得分:0)

首先,“播放战争”将会,因为据我所知,它会预编译所有代码,因为当它部署在servlet容器中时,Play无法动态编译。所以它应该是.class文件中包含的.class文件。

其次,我建议您在磁盘上的两个不同位置检出项目。一个用于使用Netbeans(或任何其他IDE)进行开发,另一个用于构建可部署的。当您准备好另一个版本时,请确保已提交(如果使用DSCM,例如GIT或HG,则“推送”)。从包含项目“构建”版本的文件夹中,从SCM中提取所有更改并从命令行构建它。永远不要在IDE中打开构建版本,因为它会将各种文件添加到构建文件夹中。

最终提示:确保SCM忽略所有特定于IDE的文件。对于GIT,将要忽略的文件名模式添加到项目根文件夹中的.gitignore文件中(HG:.hgignore,svn:使用svn:ignore属性)。

答案 1 :(得分:0)

另一种选择是使用--exclude标记,该标记不会打包您提到的文件夹。

你可以这样做:

play clean && play war --%prod --exclude folders:separated:by:colon -o myWar --zip