我已经在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,并进行了检查,但仍然是同样的问题。
答案 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容器,你可以试试。