2017-07-17 32 views
0

目前我面臨的問題是我需要在具有不同Java版本的作業中運行兩個maven目標。在一個jenkins工作中可以使用不同的Java版本嗎?

第一步是編譯我的代碼與Java 6 第二步是與Java 8

運行聲納我怎樣才能做到這一點?

謝謝

+0

你試過了嗎:https://stackoverflow.com/a/38866362/1595977? – Edwin

+0

對此,答案是:[Toolchains](https://maven.apache.org/guides/mini/guide-using-toolchains.html),它解決了這個問題。因此,使用JDK 8運行Maven,但使用其他JDK版本編譯/測試代碼(例如使用JDK 6)。 – khmarbaise

+0

免責聲明。我無法使用Java 8來運行Maven進行編譯。我們的遺留代碼庫不支持它。 – keiki

回答

0

首先感謝與toolchainmaven.compiler.sourcemaven.compiler.target其他提示。

對我來說,這可悲的是不工作,但我找到了一個簡單的解決方案。這就是使用jenkins管道。

這種情況下的工作區是共享的。它是使用node命令創建的。

node('Slaves') 
{ 
    stage('Build with coverage and All tests') { 

    echo 'Starting build with ALL unittests' 
     withMaven(jdk: 'JDK6') { 
     //execute maven with java6 
     } 
    } 
    stage('Execute Sonar') { 
    //do other stuff 
     withMaven(jdk: 'JDK8') { 
     //execute maven with java8 
     } 
    } 

} 
-1

您可以使用java 8爲默認,在pom.xml設置如下properties使用java 6作爲源和目標編譯器。

<properties> 
    <maven.compiler.source>1.6</maven.compiler.source> 
    <maven.compiler.target>1.6</maven.compiler.target> 
    </properties> 
+0

更正了'maven.compiler.source'版本! –

相關問題