服务器手动发布流程

视频连接: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修真院哦

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容