2014-04-18 71 views
2

我正在和一個團隊合作一個maven項目,並且我在Jenkins爲它建立了一個構建工作。Jenkins不會使用Java 7編譯器

最近,團隊中的某人添加了切換字符串的代碼。這引起了建立詹金斯失敗,出現以下錯誤:

error: strings in switch are not supported in -source 1.5 

所以我當然認識詹金斯必須使用Java 7,而不是Java 5

首先,我遠程化到服務器,打開一個cmd,並做了where javajava -version。我檢查了我的環境變量和路徑。一切都指向相同的Java 7 jdk目錄:C:\Java\jdk1.7.0_21

然後我檢查了Jenkins,看它是否配置爲使用正確的JDK。它是: Jenkins JDK

事實上,這是Jenkins服務器設置使用的唯一Java,它是服務器中唯一安裝的Java。

作爲最後的手段,我將JDK參數插件安裝到Jenkins中。然後我將項目設置爲使用Java 7的參數:

Parameter JDK

不過,我仍然得到同樣的錯誤。

我錯過了什麼嗎?什麼可能導致這個?最重要的是,我怎樣才能解決它,讓詹金斯使用-source 1.7而不是-source 1.5

+0

並且mvn編譯做的工作嗎? – fge

+0

如果您使用Maven,那麼您的pom.xml如何?它指定了什麼JVM?這可能是'源1.5'來自何處。 – jedison

+1

這些是Jenkins的JDK配置。你也應該檢查你的'pom'是否有類似的設置(http://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html)。 – toniedzwiedz

回答

4

檢查您的pom.xml以及在那裏指定了哪些Java版本(用於源代碼)。這可能是source 1.5的來源。

<properties> 
    <jee.level>1.4</jee.level> 
    <jdk.level>1.5</jdk.level> 
</properties> 

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <configuration> 
     <source>${jdk.level}</source> 
     <target>${jdk.level}</target> 
    </configuration> 
</plugin> 
+0

它沒有指定......我認爲這是問題。我確定添加maven-compiler-plugin並指定source和target爲'1.7'將會修復它。我想知道爲什麼它拖欠1.5。那裏有什麼見解? –

+0

請確定,讓我們知道是否帶有項目屬性的maven-compiler-plugin'修復了這個問題。 – jedison

+0

它修復了它。感謝您指點我正確的方向! (我實際上覺得有點傻,因爲我之前做過這個 - 只是忘了考慮pom。) –