Jenkins中的Maven构建失败:mvn:找不到命令

时间:2019-04-04 05:18:57

标签: linux maven jenkins command-line build

我已经在Linux服务器中分别安装了Jenkins和Maven。 Maven正在提示符下工作。我通过给出mvn -version进行了测试,并给出了以下输出:

Apache Maven 3.2.5 
Maven home: /data1/SOA/app/oracle/product/middleware/Oracle_Home/oracle_common/modules/org.apache.maven_3.2.5
Java version: 1.8.0_151, vendor: Oracle Corporation
Java home: /data1/setup_files/JDK1.8/jdk1.8.0_151/jre
Default locale: en_GB, platform encoding: UTF-8
OS name: "linux", version: "3.8.13-55.1.6.el7uek.x86_64", arch: "amd64", family: "unix"

但是,当我尝试使用以下shell脚本从Jenkins提供Maven构建时,来自Jenkins:

export M2_HOME=/data1/SOA/app/oracle/product/middleware/Oracle_Home/oracle_common/modules/org.apache.maven_3.2.5
export PATH=$PATH:$M2_HOME/bin
echo "Java Version"
java -version
echo "Maven Version"
mvn -version

它引发以下错误:

+ echo 'Java Version'
Java Version
+ java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
+ echo 'Maven Version'
Maven Version
+ mvn -version
/tmp/jenkins6612268406133694375.sh: line 7: mvn: command not found
Build step 'Execute shell' marked build as failure

我浏览了多个链接和博客,但是没有任何步骤可以帮助您。我已完成以下操作:

在Manage Jenkins中->配置->环境变量->设置JAVA_HOME,M2_HOME,ORACLE_HOME,PATH

在Manage Jenkins中->全局工具配置->将JAVA_HOME和MAVEN_HOME设置为服务器中的安装目录

我还重新启动了Jenkins,并进行了检查,但仍然是同样的问题。

3 个答案:

答案 0 :(得分:0)

您是否在管道中使用Jenkinsfile? 如果是这样,请尝试将以下部分添加到管道脚本中:

    tools {
        maven 'Maven 3.2.5'
    }

这就是我们项目中的窍门

答案 1 :(得分:0)

execute shell不了解Maven设置;只有行家作业类型或步骤可以。

假设Jenkins 2.x, 根据詹金斯|管理詹金斯|全局工具配置, 有一个名为“ Maven”的部分-Maven安装

点击“添加Maven”

名称:“ Maven-3.2.5” MAVEN_HOME:/data1/SOA/app/oracle/product/middleware/Oracle_Home/oracle_common/modules/org.apache.maven_3.2.5

您的自由式作业应具有“调用顶级Maven目标”步骤。

设置“ Maven版本”:“ Maven-3.2.5”。

您可以在处理工作之前和之后都有外壳步骤。

答案 2 :(得分:0)

我有同样的问题,但现在我已经解决了。 现在分享一下方法。

启动jenkins的docker容器时,请执行以下命令行:

<块引用>

「docker run -d -v jenkins_home:/var/jenkins_home -v /usr/local/java/jdk1.8.0_281/:/usr/local/java/jdk1.8.0_281 -v /usr/local/apache -maven-3.6.3/:/usr/local/apache-maven-3.6.3 --name jenkins -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts”

把你本地的jdk和maven的linux环境映射到jenkins容器,你可以试试。