视频连接:https://v.qq.com/x/page/o0514nmsknk.html?ptag=qqbrowser
君不见,发布代码两眼泪汪汪,
tar包是谁,war包又是谁,他们为何会在这里,他们又将变成什么,修真院将带您解密:服务器手动发布代码
一、背景介绍
代码发布是开发人员必备的技能,从svn到开发环境,从开发环境到测试环境,再从测试环境到线上环境,在没有脚本的情况只能手动发。
所以,优先写脚本,其次是手动发
写脚本的前提是熟悉手动发的步骤,然后写成脚本,发布时执行脚本
现在我们来看看怎么才能手动发布→_→
二、知识剖析
2.1、数据库变动:
有sql变动的话,整理好sql语句成*.sql文件的格式,到相应的环境的数据库中执行,执行之前,用mysqldump命令备份相应的数据库,进入到数据库中用source命令执行。
2.2 打包方式:
1、web/home:打成war包
如:skill-admin-home.war
2、service:打成tar包,
如skill-service.tar.gz
3、core :打成jar包,如skill-core.jar
2.3 打包:
本地:
1、用maven clean install,web需要在pom里面配置
服务器:
1、web:在web下执行mvn clean install,打包
生成的包在graship-home-web/target下
2、service:
/data/sources/graship/trunk/graship-home-service下执行
mvn clean install -Dmaven.test.skip=true assembly:assembly
生成tar.gz包在graship-home-service/target下
3、core
问题1:
怎么看web或者service里面引用的是哪个core包呢???
2.4、传包
scp命令
scp -P 端口号 *.war root@IP:目录
2.5、删除旧文件夹
删除原有的run下除了temp外的文件夹,
问题2:为什么不删除temp文件夹,删除了会怎样?
2.6、解压
1、war:jar -xvf 包名
2、tar: tar -zxvf 包名
2.7、重启
web容器(jetty/resin)以及service(deploy文件夹下的stop.sh/start.sh)
2.8、改动文件
对于group.xml文件里面配置的数据库配置,有些需要修改为相应的环境的数据库
路径:/data/sources/graship/trunk/graship-home-service/target/classes
三、更多讨论
问题1:为什么service/web会有两种目录结构?
答:一个是包解压后的文件夹,一个是原始代码,当然不一样啦,
问题2:解压压缩包需要在哪里执行?
答:都在相应的web和service文件夹下执行解包和解压缩即可。
附:PPT链接:http://pan.baidu.com/s/1kVLteez
更多有味道的知识,就在IT修真院哦