[英]I'm not able to run the MVN goals through shell script
我只是在JENKINS“ Execute Shell” cmd中的Post Build活动中使用了以下Shell脚本
#!/bin/bash
mvn --version
export M2_HOME=/opt/maven/maven-3.3.3 # your Mavan home path
export PATH=$PATH:$M2_HOME/bin
mvn --version
echo $HOME
echo $WORKSPACE
file=$WORKSPACE/XXXX/XXXX-reports
cd $file
cp XXXX-1.html test.html
fail=`grep "test-method.*FAIL" results.xml | sed -e 's/^.*test-
instance-name="\(.*\) ' | tr '\n' ','`
echo $fail
count=0
while [ $count -lt 5 ]
do
if [ ! -z "$fail" -a "$fail" != " " ];
then
echo `$M2_HOME/bin/mvn clean test -f ../../pom.xml -DInclude=${fail}`
cp XXXX-report.html ReReport_$count.html
retry=`expr $count + 1`
fi
done
在上面的shell脚本中,我试图运行mvn命令,并继续运行5次以增加UNIT脚本执行中的通过次数。
但这不起作用。 无法执行行家目标。 因此,我只注释可执行文件并添加echo进行调试。 但是没有运气。
任何线索
我建议您使用下面的脚本来修改您的脚本。 在此处添加参数。 产品日志文件:mvn_jenkins.log将使您轻松找到mjuarez建议的问题:
#!/bin/bash
MVNCMD=$(command -v mvn)
MVNPARAMS=" -version" # replace with your appropriate params
LOGFILE="mvn_jenkins.log"
COUNT=0
while [ $COUNT -lt 5 ]; do
echo "Execute: $MVNCMD $MVNPARAMS" >> $LOGFILE
echo "-------" >> $LOGFILE
$MVNCMD $MVNPARAMS 2>&1>> $LOGFILE
echo "" >> $LOGFILE
COUNT=$((COUNT + 1))
done
说明:
MVNCMD = $(command -v mvn) :将maven执行文件的全限定名放在MVNCMD var中
$ MVNCMD $ MVNPARAMS 2>&1 >> $ LOGFILE :使用参数执行mvn命令,并将错误输出消息(2)和常规输出消息(1)重定向到日志文件。
关于您的Maven参数,我不明白您为什么使用-DskipTests = true 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.