簡體   English   中英

Jenkins Job 找不到 JDK 但在 Jenkins 中配置了 JDK

[英]Jenkins Job Can't find JDK but JDK configured in Jenkins

我一直在嘗試在 Jenkins 上創建一個測試作業,但我遇到了 JRE 錯誤。 想法很簡單:

1)job 會運行一個簡單的測試命令“mvn clean test” 2)Allure 報告插件會根據測試結果生成測試。

我無法在 Jenkins 工作中獲得結果。

但是,當我在命令行上運行“mvn clean test”命令時。 我沒有收到任何錯誤,生成了測試結果。 當我運行以下管道時,我可以看到 maven 和 JDK 路徑是正確的。

node('master') {
    stage ('Run tests')
    dir ('C:/Program Files (x86)/Jenkins/ProjectDirectory') {
        try {
            bat '''mvn -version'''
        }
        catch (Exception ex) { currentBuild.result = 'UNSTABLE' }
        finally {
            stage ('Publish report')
            step([$class: 'AllureReportPublisher', includeProperties: false, jdk: 'jdk-1.8', results: [[path: '/target/surefire-reports']]]) 
        }
    }
}

輸出:

C:\Program Files (x86)\Jenkins\ProjectDirectory>mvn -version 
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: C:\3rd_party\apache-maven-3.6.3\bin\..
Java version: 1.8.0_191, vendor: Oracle Corporation, runtime: C:\Program Files (x86)\Java\jre1.8.0_191
Default locale: en_US, platform encoding: Cp1252
OS name: "windows server 2016", version: "10.0", arch: "x86", family: "windows"

如果我在 Jenkins 管道中運行測試,則會出現以下錯誤。

[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  0.942 s
[INFO] Finished at: 2020-02-07T14:51:07Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.1:testCompile (default-testCompile) on project restassuredcourse: Compilation failure
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

我在管理 Jenkins > 配置系統中有正確的 JDK 路徑。 在此處輸入圖片說明

如果我在 Jenkins 管道中執行“mvn -version”。 我可以看到 Jenkins 機器可以訪問正確的路徑。

在我本地的 Jenkins 上,我沒有在 Jenkins 配置中聲明任何 JDK。

嘗試刪除 Jenkins 配置中的 JDK,Jenkins 將使用操作系統中的 JAVA_HOME 路徑。

只是為了檢查我生成的 gradle.build 文件,而不是執行 "mvn clean test" 。 我使用了“gradlew clean test”並且它起作用了。 問題出在 maven 上,但我不明白為什么 maven 不使用系統 JDK。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM