簡體   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