2017-07-17 81 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'版本! –

相关问题