SVN自动化部署遇到的错误 mvn: command not found 以及奉上完整的svn自动化部署脚本

错误截图

解决方法:在要执行svm的脚本顶部添加maven的环境变量,例如

MAVEN_HOME=/usr/local/myapp/maven/maven-3.6.0
PATH=${PATH}:${MAVEN_HOME}/bin

解决过程:

说明:我已经在/etc/profile文件里配置了所有需要配置的环境变量,并重新加载了这个文件。

当我遇到这个错误时,我进行了如下的步骤来排除错误:

1. 在拥有pom.xml的文件夹内执行mvn install   代码编译成功

2. 执行含有mvn install 的脚本  代码编译成功

3. 不断百度,查不到准确的答案,偶然看到要在执行的脚本里export java环境变量。

有感而发,应该就是这个问题了。在脚本顶部 export  maven的环境变量   代码编译成功

错误截图2

同上,需要在要执行的脚本顶部export java的环境变量。

 

最后奉上我的svn自动部署代码过程

思路:当仓库发生更新时(commit),则执行自定义的自动化部署脚本,

脚本关键点:更新项目(svn up),判断后端代码是否被修改了,执行编译,复制项目进web部署路径下。

1 已经在linux上成功安装了 svn,maven,java。

2 cp  svn仓库路径/hooks/post-commit.tmpl   svn仓库路径/hooks/post-commit

3 给post-commit文件增加可执行权限: chmod +x post-commit

4 在post-commit文件底部添加要执行的脚本 nohup sh /usr/local/myapp/svnrepos/repos1/hooks/myshell-2.sh $REPOS $REV &

4 编写自动化脚本(/usr/local/myapp/svnrepos/repos1/hooks/myshell-2.sh)

红色字符是通用的,蓝色和绿色的字符是根据个人的文件路径而编写的。

#!/bin/sh
MAVEN_HOME=/usr/local/myapp/maven/maven-3.6.0
PATH=${PATH}:${MAVEN_HOME}/bin

JAVA_HOME=/usr/local/myapp/java/jdk1.8.0_191
CLASSPATH=.:$JAVA_HOME/lib
PATH=$PATH:$JAVA_HOME/bin
export  JAVA_HOME CLASSPATH PATH

repos=/usr/local/myapp/svnrepos/repos1 #仓库路径
temp=/usr/local/myapp/svnrepos/temp  #临时路径,保存从svn仓库里获取的项目
pro=B2 #要更新的项目名
web=/data/web #保存项目要部署的路径
REPOS=$1 #仓库路径
REV=$2  #项目更新后的版本号

echo "仓库目录:$REPOS 版本:$REV 时间:`date "+%Y-%m-%d %H:%M"` " >> $repos/hooks/mylogs  #保存svn>更新记录
cd $temp
svn up
#判断后端代码是否被修改了,假如没有则不进行代码的编译
java=`svn diff -r $[$REV-1] $pro/src/main/java | grep -c '/src/main/java'`
if [ $java -gt 0 ]
    then
    echo "后端代码发生变化" >> $repos/hooks/
mylogs
    cd $pro
    mvn -U clean install >> $repos/hooks/
mymvnlogs  #将编译时所产生的输出存放在此文件内
    cd target &&  cp -r  $pro $web
else
    cp -r $pro/src/main/webapp/* $web/$pro/
fi

if (( $? ))
then
    echo "Update Failed!"  >> $repos/hooks/
mylogs
else
    echo "Update  Success!"  >> $repos/hooks/
mylogs
fi
echo "" >> $repos/hooks/mylogs

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值