打包命令
play 项目打包主要分两种方式,play war
命令以及 play precompile
命令,使用play help命令可获取帮助信息
play war
将整个项目打包至指定输出目录或者war文件,适用于整站更新部署。
语法:
play war [project_path] [--exclude=exclude_dir1:exclude_dir1] -o out_dir
命令选项
参数 | 是否必须 | 说明 | 示例 |
--exclude | 否 | 需要排除打包的目录或文件,指定的文件或目录将不会进行输出,多个文件或目录之间使用 : 分隔 | .svn:target:logs:eclipse |
--out or -o | 是 | 输出打包后的项目路径,可使用相对路径 | ../out/play_test |
示例代码
进入项目根目录下执行以下命令,多模块下命令中的模块应是 主模块 名称。
输出文件至out目录下
play war play_test.main --exclude .svn:target:logs:tmp -o ../out/sp2p_qdb
输出war文件
play war play_test.main --exclude .svn:target:logs:tmp -o ../out/sp2p_qdb.war
输出zip文件
play war sp2p_qdb.main --exclude .svn:target:logs:tmp -o ../out/sp2p_qdb.zip
play precompile (推荐)
预编译所有的java源和模板来加快应用程序的启动,适用java类以及html模板文件修改更新
play precompile
单模块项目进入项目根目录下,执行此命令后在当前路径下生成precompiled文件夹,将该文件夹打包上传更新即可
多模块项目进入 主模块 目录下,执行命令后在当前路径下生成precompiled文件夹,将该文件夹打包上传更新即可
示例代码
单模块项目,项目根目录下执行命令
cd ~/workspaces/play_test play precompile
多模块项目,主模块目录下执行命令
cd ~/workspaces/play_test.main play precompile
项目部署
通过好压等压缩软件打包成*.tar.gz文件打包上传至服务器
更新部署
1 项目备份
cd ~/play_test/application# 备份命令tar -zcvf precompiled_20180414.tar.gz precompiled
2 上传代码至服务器并解压缩文件
tar -zxvf precompiled.tar.gz
3 获取tomcat安装路径
需要注意的是当存在多个tomcat进程的时候,需要确定本次更新的项目由哪个tomcat驱动
ps aux|grep tomcat
4 重启tomcat
cd ~/tomcat# 关闭tomcatbin/shutdown.sh# 启动tomcatbin/startup.sh
再次使用ps命令确定tomcat进程是否关闭成功,如果关闭失败,应使用kill命令强杀进程
ps aux|grep tomcatkill -9 进程号
5 打印启动日志
cd ~/tomcattail -f logs/catalina.2018-04-14.out
6 root授权
如因为用户权限导致操作失败,通过sudo命令切换至root用户操作
# 切换至root用户sudo -s# 或直接输入root密码切换至root用户,切换普通用户类似su root# 退出当前登录用户,返回至上一登录用户,若为第一个登录用户,则退出终端exit
注意事项
打包的 application/app 下含有源代码,按需自行清理。
新增java类,无需更新源码至 application/app 目录,仅更新 precompiled 目录即可。
新增package,仅需新建对应package目录即可,目录中的源码禁止上传。
新增html,上传源码文件及对应package文件夹至对应目录,否则抛出
Template not found
异常,需特别注意的是大小写,linux下区分大小写,windows则不存在此问题。修改 public 文件夹下文件,无需编译,直接上传至对应目录下即可,注意多模块下为 application/modules 目录下的模块。
修改 routes 文件,需要更新至对应模块 conf 目录下 routes 文件。
版权声明
本文仅代表作者观点,不代表xx立场。
本文系作者授权xxx发表,未经许可,不得转载。
发表评论