Linux CentOS6.8 项目部署脚本实现
2017-03-10 12:02
260 查看
面向刚接触linux环境的新手,老鸟勿拍~
部署环境及配置: tomcat9,maven3.3.9,git 1.12.0
SVN篇 从部署服务器执行脚本,将项目部署到生产服务器
部署环境及配置: tomcat9,maven3.3.9,git 1.12.0
##定义一些变量,将需要用到的 source目录,项目目录,名称等定义变量,方便使用 buildpkg=/mnt/xxx-tomcat-9.0.0.M4/gitsourcepkg/ #git拉取源码存放目录 buildpkgName=xxx-0.0.1-SNAPSHOT.war #maven打包后生成的包名 targetpath=/mnt/xxx-tomcat-9.0.0.M4/gitsourcepkg/xxx/target/tbkmark-0.0.1-SNAPSHOT.war #maven打包后包存放的位置 projectName=/mnt/xxx-tomcat-9.0.0.M4/gitsourcepkg/xxx #git拉下来的代码项目路径,进入到该目录下执行 mvn package可执行maven打包 tomcatName=xxx #tomcat的名字,方便同一个环境下分多个tomcat的时候查询指定tomcat的进程 projectPath=/mnt/xxx-tomcat-9.0.0.M4/webapps/ROOT #项目在tomcat中存放的路径 startpath=/mnt/xxx-tomcat-9.0.0.M4/bin/startup.sh #tomcat启动脚本 logpath=/mnt/xxx-tomcat-9.0.0.M4/logs/catalina.out #日志路径 echo "##### start build xxx进入build目录,清理旧数据 拉取项目#####" cd $buildpkg rm -rf * git clone git链接 echo "##### git pull ok git上拉取项目完毕后,进入项目目录中进行打包,并且跳过测试代码#####" cd $projectName mvn package -Dmaven.test.skip=true echo "##### maven pkg ok 打包成功后 查看指定tomcat进程,并且杀掉,然后将tomcat下存放项目的目录清空,将新打包的项目包复制到tomcat下指定目录 并解压#####" ps -ef | grep tomcat | grep $tomcatName | awk '{print $2}'|xargs kill -9 cd $projectPath rm -rf * cp $targetpath $projectPath jar -xvf $buildpkgName echo "##### kill tomcat and cp pkg to root ok !!! 复制生产环境专用的配置文件,启动tomcat 等待5秒后查看日志 #####" \cp /application.properties /mnt/xxx-tomcat-9.0.0.M4/webapps/ROOT/WEB-INF/classes #\cp 表示复制的时候如果目标目录下存在同名文件,进行强制覆盖,不再提醒 Y/N sh $startpath sleep 5s tailf -n 500 $logpath
SVN篇 从部署服务器执行脚本,将项目部署到生产服务器
projectName=项目名称 targetMathineme=项目名称 targetMathine=目标服务器ssh链接路径 targetTomcatWebAppsDir="~/xxx-tomcat-8.0.35/webapps" svnPath=svn地址 checkoutDir="checkout" targetWarName=war包名 mvn scm:bootstrap -DconnectionUrl=scm:svn:$svnPath -DcheckoutDirectory=$checkoutDir -Dgoals=package -Dprofiles=skipTest,dev -DmavenHome="" if [ -f "./$checkoutDir/target/$targetWarName.war" ]; then echo "File xxx Generate success!" scp $checkoutDir/target/$targetWarName.war $targetMathine:$targetTomcatWebAppsDir/$targetWarName.war.tmp ssh $targetMathine "mv $targetTomcatWebAppsDir/$targetWarName.war.tmp $targetTomcatWebAppsDir/$targetWarName.war" fi echo "xxx.war publish success. "
相关文章推荐
- linux中部署rsync实现文件远程备份及同步(centos x64 6.8)
- linux(CentOS)-nodejs项目部署
- Java web项目在linux环境下自动编译和部署脚本
- Linux(Centos)之安装tomcat并且部署Java Web项目
- Linux(Centos)之安装tomcat并且部署Java Web项目
- linux(centos)下tar包安装jdk和tomcat,以及部署web项目
- linux(CentOS)-nodejs项目部署
- linux主机上webservice项目部署脚本
- Linux(Centos)安装tomcat并且部署Java Web项目
- 自写聊天室_LinuxC实现(1)——项目部署遇到问题及解决方法
- Linux(Centos)之安装tomcat并且部署Java Web项目
- Linux下实现SSH免密码登录和实现秘钥的管理、分发、部署SHELL脚本分享
- Linux-CentOS的tomcat配置和web项目部署
- Linux(Centos)之安装tomcat并且部署Java Web项目
- LINUX用户建立秘钥认证实现SHELL脚本管理,分发,部署
- 阿里云服务器Centos6.5 部署SVN实现多项目管理
- Linux(Centos)之安装tomcat并且部署Java Web项目
- Python脚本实现项目工程自动远程部署
- 161118、linux(centos) 项目部署阶段相关命令汇总
- Linux(Centos)之安装tomcat并且部署Java Web项目