繁体   English   中英

我无法通过Shell脚本运行MVN目标

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM