背景:开发将其代码放到svn里面,如何将修改后存放到svn里的代码发布到线上?
简单做法:写个shell脚本,用于代码发版。比如开发的代码存放svn的路径是:svn://112.168.19.120/kevin_app
首先在发布机上创建一个发版目录 [root@kevin ~]# mkdir -p /Data/webroot_svncode/Online_app 然后将svn里的代码下载到发布机本地的发版目录里 [root@kevin ~]# cd /Data/webroot_svncode/Online_app [root@kevin Online_app]# svn checkout svn://112.168.19.120/kevin_app //svn checkout一般都是目录 [root@kevin Online_app]# ls kevin_app [root@kevin Online_app]# cd kevin_app [root@kevin kevin_app]# ll kevin.war //这个就是开发放在svn仓库里的war包 这样后面要想再将svn里最新修改的代码拿到发布机本地,只需要切换到发版目录下的svn目录里进行更新命令即可! [root@kevin Online_app]# cd kevin_app //一定要切换到svn对应代码目录下进行更新命令 [root@kevin kevin_app]# /usr/bin/svn update At revision 20. [root@kevin kevin_app]# ll //下面就是更新后的最新代码包 kevin.war 下面附上一个简单的发版脚本: 将代码发布到远程线上服务器上(脚本中的22022是远程服务器的ssh端口);即将最新代码版本发布到线上后,重启线上的tomcat服务: [root@kevin kevin_app]# cat /Data/webroot_svncode/up_Online.sh #!/bin/bash REMOTE_SERVER_IP="112.168.19.75" DEST_DIR="/Data/app/tomcat-7/webapps/" cd /Data/webroot_svncode/Online_app/kevin_app /usr/bin/svn update /usr/bin/ssh -p22022 root@${REMOTE_SERVER_IP} "rm -rf /Data/app/tomcat-7/webapps/kevin*"; /usr/bin/rsync -e "/usr/bin/ssh -p22022" -avpgolr /Data/webroot_svncode/Online_app/kevin_app/kevin.war root@${REMOTE_SERVER_IP}:${DEST_DIR}; sleep 10 /usr/bin/ssh -p22022 root@${REMOTE_SERVER_IP} "/bin/sh /Data/app/tomcat-7/start.sh";