SVN+MAVEN实现在LINUX上自动部署项目

Linux系统:CentOS 7


maven安装:(也可以访问http://mirror.bit.edu.cn/apache/maven自行寻找自己要的版本)

[root@VM_16_11_centos ~]# wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.3/binaries/apache-maven-3.5.3-bin.tar.gz
[root@VM_16_11_centos ~]# tar -zxvf apache-maven-3.5.3-bin.tar.gz

环境变量的设置[root@VM_16_11_centos ~]# vim /etc/profile

#SET MAVEN
#自己定义的解压的路径
export MAVEN_HOME=/usr/local/apache-maven-3.5.3
export MAVEN_HOME
export PATH=$PATH:$MAVEN_HOME/bin

svn安装:

[root@VM_16_11_centos ~]# yum install subversion

实现思路:
自动部署通过svn的钩子实现,在触发钩子的时候进行maven的项目打包,之后进行发布


具体实现:
使用svn建库之后,进入hooks文件夹,将里面的post-commit.tmpl修改成post-commit
post-commit:


#!/bin/sh
EPOS="$1"
REV="$2"
TXN_NAME="$3"
#配置JDK的环境变量,否则maven以及jar无法运行
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

#自己checkout出来的项目路径
SERVE=/root/temp/vedio-server

export LANG=zh_CN.UTF-8

#打印出项目更新的时间
echo "Code Deployed at `date "+%Y-%m-%d %H:%M"`" >> /root/deploy_log
#使用svn自动更新自己checkout出来的项目
/usr/bin/svn update $SERVE --username mdy --password mdy >> /root/vedio_svn_log
#使用mvn进行项目打包,-f参数可以指定pom.xml的路径,在打包成功后会先杀掉已经进行的项目进程
/usr/local/apache-maven-3.5.3/bin/mvn -f /root/temp/vedio-server/pom.xml  clean package && ps -aux | grep vedio-server-0.0.1-SNAPSHOT.jar | grep -v grep | cut -c 9-15 | xargs kill -9  && sleep 3
#这里要注意nohup得堵塞
nohup java -jar /root/temp/vedio-server/target/vedio-server-0.0.1-SNAPSHOT.jar --spring.profiles.active=produce >/root/vedio-server-nohup  2>&1 &

猜你喜欢

转载自blog.csdn.net/madonghyu/article/details/80380435