我使用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文件时,是否应该使用详细信息?
答案 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