Jenkins 中未找到 Maven

问题描述 投票:0回答:12

我正在 Jenkins 中运行我的 Maven/Spring 项目(只是第一次测试它),使用 shell 脚本选项:

mvn spring-boot:run

我收到构建错误:

/Users/Shared/Jenkins/tmp/jenkins8087926087546049217.sh: line 2: mvn: command not found

我该如何解决这个问题?它是一个 Spring-boot 应用程序。当我通过命令行运行

mvn spring-boot:run
时效果很好。

java spring maven spring-mvc jenkins
12个回答
10
投票

“管理Jenkins”->“全局工具配置” enter image description here

如果仍然不行,将以下内容添加到“执行shell”

export MAVEN_HOME=/opt/maven
export PATH=$PATH:$MAVEN_HOME/bin
mvn --version
mvn clean package

enter image description here


4
投票

尝试一下,导航到“管理 Jenkins”并单击“全局工具配置”,在 Maven 部分中单击“添加 Maven”按钮并提供 Maven 安装路径 在 MAVEN_HOME 中并保存配置。

Maven config in Jenkins


3
投票

我在 Windows 上也遇到了类似的问题。 Maven 在控制台上工作正常,但从 Jenkins 调用 cmd 命令时失败。

原因是 Jenkins 作为“系统用户”服务安装和运行。这意味着该进程无法看到您的用户(用户级别)的 ENV 变量和 PATH。在系统级别的 PATH 和 ENV 变量中设置 Maven 就可以了。

P.S.:@Charo 在较新的 Jenkins 版本中,maven 配置从配置系统转移到全局工具配置


2
投票
export MAVEN_HOME=/opt/maven
export PATH=$PATH:$MAVEN_HOME/bin
mvn --version
mvn clean package

然后 mvn install


2
投票

我也遇到这个问题并解决了。我认为当您通过“新建项目”按钮创建新项目时,您可能正在使用“FreeStyle 项目”而不是“Maven 项目”。

在FreeStyle项目中,Jenkins可能无法在“全局工具配置”中读取Linux服务器和Maven安装中的环境变量,因此我在“配置系统”中重复配置了环境变量。然后就成功了。


1
投票

确保你的maven配置是正确的。 您可以使用 cmd 并运行:

mvn -version

如果没有错误,请尝试

mvn spring-boot:run

1
投票

也许这是一个愚蠢的答案,但我忘记将 Maven 作为 Jenkinsfile 中的工具。

pipeline {
    agent any
    tools {
        maven 'Maven 3.8.6'
        jdk 'Java 17.0.4.1'
    }
    stages {

    }
}

0
投票

我也遇到过类似的问题,我将名称命名为 maven-3.3.9

并将 MAVEN_HOME 像:E:\Softwares pache-maven-3.3.9 放入


0
投票

我在 ubuntu 16.04 机器上遇到了这个问题,实际原因是 maven bin 目录路径未设置 $PATH 变量。

如何查看?

  1. 您可以在 Jenkins GUI 的执行 shell 提示符中附加以下行。

    
    echo $M2_HOME
    echo $PATH
    mvn clean install
    

    当您再次构建时,您将看到 $PATH 变量中未设置 M2_HOME 或 maven bin 路径。

  2. 或者您可以从root登录Jenkins用户并运行以下命令。

    
    su - Jenkins
    echo $PATH
    

解决方案::


 1. logged in to root user.
 2. then this command cd /etc/profile.d/
 3. vim maven.sh then add below lines
    export M2_HOME=/usr/local/maven
    export PATH=$PATH:$M2_HOME/bin
 4. run this command chmod +x maven.sh
 5. then login to jenkins user (su - jenkins) then see again maven path is set or not via (echo $PATH) command.
 6. If the path is set then restart Jenkins service 
    service jenkins restart
    and re-login in Jenkin GUI (http://localhost:8080/)
 7. Now rebuild your job then you will get success :-)

0
投票

如果你的代理是一个没有 maven 的 docker 镜像,你也可能会得到 mvn not found 错误


0
投票
  1. 在jenkins管理中设置Java JDK
  2. 在 jenkins maange 中设置 Maven

在命令执行设置中

set path=C:\Program Files\apache-maven-3.8.7\bin

您在 Windows 环境中的路径

cd C:\Users\X\IdeaProjects\ "nameofprocject"

只需从 Intellij/Eclipse 复制

mvn -Dtest=MainPageTests test
-> Maven 运行的目标


0
投票

2024 年解决方案

安装

Pipeline Maven Integration Plugin
并在 Jenkinsfile 中使用 Maven,如下所示:

pipeline {
  agent any
  stages {
    stage("Build") {
      steps {
        git url: 'https://github.com/cyrille-leclerc/multi-module-maven-project'
        withMaven {
          sh "mvn clean verify"
        } // withMaven will discover the generated Maven artifacts, JUnit Surefire & FailSafe reports and FindBugs reports
      }
    }
  }
}

来源:https://plugins.jenkins.io/pipeline-maven

© www.soinside.com 2019 - 2024. All rights reserved.