繁体   English   中英

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

[英]Maven build in Jenkins failing : mvn: command not found

我已经在我的 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

我浏览了几个链接和博客,但没有一个步骤有帮助。 我做了以下工作:

在管理 Jenkins --> 配置 --> 环境变量 --> 设置 JAVA_HOME、M2_HOME、ORACLE_HOME、PATH

在 Manage Jenkins --> Global Tool Configuration --> 将 JAVA_HOME 和 MAVEN_HOME 设置为服务器中的安装目录

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

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

    tools {
        maven 'Maven 3.2.5'
    }

这就是我们项目中的诀窍

执行 shell 不知道 Maven 设置; 只有 Maven 作业类型或步骤可以。

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

点击“添加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”。

您可以在处理工作中的任何非 Maven 步骤之前和之后使用 shell 步骤。

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

当启动 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容器,可以试试。

我只是在 ubuntu sudo docker run -it --memory="16g" -p 8181:8080 -p 50000:50000 -v /home/ubuntu/jenkins:/var/jenkins_home 上运行 mvn -version -v /usr/share/maven:/usr/share/maven -v /usr/lib/jvm/java-11-openjdk-amd64:/usr/lib/jvm/java-11-openjdk-amd64 --name jenkins -d詹金斯/詹金斯:lts-jdk11

Apache Maven 3.6.3 Maven 主页:/usr/share/maven Java 版本:11.0.11,供应商:Ubuntu,运行时:/usr/lib/jvm/java-11-openjdk-amd64 默认语言环境:en,平台编码:UTF -8 操作系统名称:“linux”,版本:“5.4.0-90-generic”,arch:“amd64”,系列:“unix”

我在 jenkins 中添加了配置属性

在此处输入图片说明

在此处输入图片说明

我的詹金斯文件的快照是

管道 { 代理任何工具 { jdk 'JAVA_HOME' maven 'maven-3.6.3'

}

triggers {
    pollSCM('H/5 * * * *')
}

我有错误

在 jenkins mvn clean test -DskipTests=true -Dstyle.color=always 错误:无法找到或加载主类 org.codehaus.plexus.classworlds.launcher.Launcher 引起:java.lang.ClassNotFoundException:org.codehaus.plexus。 classworlds.launcher.Launcher

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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