欢迎来到本站
IT
0

[Play 1.4.1] 打包部署

2023.02.27 | 访客 | 20659次围观

打包命令

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

注意事项

  1. 打包的 application/app 下含有源代码,按需自行清理。

  2. 新增java类,无需更新源码至 application/app 目录,仅更新 precompiled 目录即可。

  3. 新增package,仅需新建对应package目录即可,目录中的源码禁止上传。

  4. 新增html,上传源码文件及对应package文件夹至对应目录,否则抛出Template not found异常,需特别注意的是大小写,linux下区分大小写,windows则不存在此问题

  5. 修改 public 文件夹下文件,无需编译,直接上传至对应目录下即可,注意多模块下为 application/modules 目录下的模块。

  6. 修改 routes 文件,需要更新至对应模块 conf 目录下 routes 文件。


版权声明

本文仅代表作者观点,不代表xx立场。
本文系作者授权xxx发表,未经许可,不得转载。

发表评论