2016-04-14 147 views
7

錯誤的JDK當我嘗試運行我的詹金斯Maven的工作,我得到以下錯誤:的Maven構建與詹金斯

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project myProject: Fatal error compiling: invalid target release: 1.8 -> [Help 1] 

這表明,Maven的使用Java 1.8,但它應該是使用Java 1.7。

我在調試模式下運行Maven和它顯示正確的版本:

... 
Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 14:51:28+0100) 
Maven home: /var/lib/jenkins/tools/hudson.tasks.Maven_MavenInstallation/maven305 
Java version: 1.7.0_71, vendor: Oracle Corporation 
Java home: /var/lib/jenkins/tools/hudson.model.JDK/JDK_7u71/jre 
Default locale: en_US, platform encoding: UTF-8 
OS name: "linux", version: "3.8.0-44-generic", arch: "amd64", family: "unix" 
... 

詹金斯服務器與Java 1.8中運行

... 
$ java -version 
java version "1.8.0_74" 
Java(TM) SE Runtime Environment (build 1.8.0_74-b02) 
Java HotSpot(TM) 64-Bit Server VM (build 25.74-b02, mixed mode) 
... 
$ javac -version 
javac 1.8.0_74 
... 

我試圖運行一個空的Maven的回購工作,並告訴Maven確切使用哪個版本,但沒有成功。

我稱Maven是這樣的:

mvn clean install -X -DskipTests -Dmaven.repo.local=../testrepo -Djava.version=1.7 

難道我做錯了什麼?

+1

您是否嘗試過在我們的POM文件中爲編譯器插件顯式指定Java 1.7? – CptBartender

+0

@CptBartender不,我會試試看。 – fa94

+0

@CptBartender仍然是一樣的錯誤。 – fa94

回答

-1

我終於找出問題所在。

我在我的構建中使用另一個模塊,我從nexus服務器下載。有人犯了一個錯誤,並將版本上傳到與版本控制下的版本不同步的連接。 nexus上的版本有指定的Java 1.8,但版本控制下的版本有Java 1.7,所以我沒有注意到它。

謝謝大家的偉大答案。

0

嘗試以下步驟:

1)進入管理詹金斯 - >配置系統

2)添加JAVA_HOME和其路徑在全局屬性 - >環境變量

3)添加JDK和在JDK節路

如果沒有,請嘗試以下這篇文章的很多解決方案都提供了這裏:Maven uses an incorrect Java version when it is executed by Jenkins

+0

我試過其他問題中提到的解決方案,但沒有任何工作。另外我不能更改全局變量,因爲Jenkins服務器也被其他需要其他Java版本的項目使用。 – fa94

7

適當的解決方案是將所需的JDK添加到Jenkins全局配置中,然後在項目構建配置下專門選擇所需的JDK版本/安裝。

首先將所需的JDK複製到您的構建機器。然後打開Jenkins配置並滾動到「JDK」部分[Jenkins - >管理Jenkins - >配置系統]。將所需的JDK添加到Jenkins。下面的圖片是Jenkins配置兩個不同的JDK的例子。 JDK installations under Jenkins

現在在項目配置[YourProject - > Configure]下,將有一個新選項可用。您可以選擇所需的JDK來構建項目,如圖所示: enter image description here

「(默認)」圖中的JVM指的是Jenkins運行的JDK。簡單的解決方法是將此JDK更改爲項目所需的版本(通過更改Jenkins啓動腳本或使用JAVA_HOME)。這將工作。但是,一旦您需要構建兩個或更多衝突項目,無論如何您都需要配置多個JDK。

通過使用類似的步驟,您可以添加多個maven安裝到您的Jenkins服務器。

+1

不要忘記將源/目標版本值添加到pom.xml中 – Talijanac

+0

在這種情況下:Project = Job –

0

在詹金斯2.7.3(和以後可能)的菜單導航略有不同:

1)管理詹金斯

2)全球工具配置

3)JDK部

4)按下「JDK安裝」按鈕

5)JDK選項和路徑有