2017-11-26 14 views
5

Eclipseの内部で自分のgradleプロジェクトでjava9を使用します。私は 実行すると:として私がテストしgradle java9プラットフォームをターゲットにできませんでした: 'Java SE 9'ツールチェーンを使用: 'JDK 8(1.8)'

package hello.test; 

import static org.junit.jupiter.api.Assertions.*;  
import org.junit.jupiter.api.Test;  
import hello.Greeter; 

class GreeterTest { 

    @Test 
    void test() { 
     Greeter greeter = new Greeter(); 
     assertEquals("Hello world", greeter.sayHello()); 
    } 
} 

とクラスで次のコードで

Run as> Gradle Test on GreeterTest.java 

package hello; 

public class Greeter { 
    public String sayHello() { 
    return "Hello world!"; 
    } 
} 

私は、エラーメッセージ

を取得しますプラットフォームをターゲットにできませんでした:0123を使用している 'Java SE 9'ツールチェーン: 'JDK 8(1.8)'。

私eclipse.initは

-startup ../Eclipse/plugins/org.eclipse.equinox.launcher_1.4.0.v20161219-1356.jar 
--launcher.library /Users/stein/.p2/pool/plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_\1.1.550.v20170928-1359 
-product org.eclipse.epp.package.jee.product 
-showsplash org.eclipse.epp.package.common 
--launcher.defaultAction openFile 
--launcher.a/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home/jre/bin 
-vmargs 
-Dosgi.requiredJavaVersion=1.9 
[email protected]/eclipse-workspace 
-XX:+UseG1GC 
-XX:+UseStringDeduplication 
--add-modules=ALL-SYSTEM 
-XstartOnFirstThread 
-Dorg.eclipse.swt.internal.carbon.smallFonts 
-Dosgi.requiredJavaVersion=1.9 
-Xms256m 
-Xmx1024m 
--add-modules=ALL-SYSTEM 
-Xdock:icon=../Resources/Eclipse.icns 
-XstartOnFirstThread 
-Dorg.eclipse.swt.internal.carbon.smallFonts 
-Declipse.p2.max.threads=10 
-Doomph.update.url=http://download.eclipse.org/oomph/updates/milestone/latest 
-Doomph.redirection.index.redirection=index:/->http://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/ 

I have added JAVA_HOME

I have added the build path

I have change the compile parameter

です

Build.Gradleにコンパイルパラメータを設定しました。

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'org.junit.platform:junit-platform-gradle-plugin:1.0.2' 
    } 
} 

repositories { 
    mavenCentral() 
} 

ext.junit4Version  = '4.12' 
ext.junitVintageVersion = '4.12.2' 
ext.junitPlatformVersion = '1.0.2' 
ext.junitJupiterVersion = '5.0.2' 
ext.log4jVersion   = '2.9.0' 

apply plugin: 'java' 
apply plugin: 'eclipse' 

apply plugin: 'org.junit.platform.gradle.plugin' 

jar { 
    baseName = 'junit5-gradle-consumer' 
    version = '1.0.0-SNAPSHOT' 
} 

compileJava { 
    sourceCompatibility = 9 
    targetCompatibility = 9 
} 

compileTestJava { 
    sourceCompatibility = 9 
    targetCompatibility = 9 
    options.compilerArgs += '-parameters' 
} 

junitPlatform { 
    // platformVersion '1.0.2' 
    filters { 
     engines { 
      // include 'junit-jupiter', 'junit-vintage' 
      // exclude 'custom-engine' 
     } 
     tags { 
      // include 'fast' 
      exclude 'slow' 
     } 
     // includeClassNamePattern '.*Test' 
    } 
    // configurationParameter 'junit.jupiter.conditions.deactivate', '*' 
    // enableStandardTestTask true 
    // reportsDir file('build/test-results/junit-platform') // this is the default 
    logManager 'org.apache.logging.log4j.jul.LogManager' 
} 

dependencies { 
    // JUnit Jupiter API and TestEngine implementation 
    testCompile("org.junit.jupiter:junit-jupiter-api:${junitJupiterVersion}") 
    testRuntime("org.junit.jupiter:junit-jupiter-engine:${junitJupiterVersion}") 

    // If you also want to support JUnit 3 and JUnit 4 tests 
    testCompile("junit:junit:${junit4Version}") 
    testRuntime("org.junit.vintage:junit-vintage-engine:${junitVintageVersion}") 

    // To avoid compiler warnings about @API annotations in JUnit code 
    //testCompileOnly('org.apiguardian:apiguardian-api:1.0.0') 

    // To use Log4J's LogManager 
    testRuntime("org.apache.logging.log4j:log4j-core:${log4jVersion}") 
    testRuntime("org.apache.logging.log4j:log4j-jul:${log4jVersion}") 

    // Only needed to run tests in an (IntelliJ) IDE(A) that bundles an older version 
    testRuntime("org.junit.platform:junit-platform- launcher:${junitPlatformVersion}") 
} 

task wrapper(type: Wrapper) { 
    description = 'Generates gradlew[.bat] scripts' 
    gradleVersion = '4.1' 
} 

私はこれを実行するために取得するために何をしなければなりませんか?

+0

「./gradlewクリーンビルド」ではどうですか?それはあなたのために機能しますか? – chenrui

+0

最新のIntellijでは、うまく動作しているようです。 – chenrui

+0

マシンにJava9 SDKがインストールされていないか、JAVA_HOME + JAVA_PATHに設定されていません。 –

答えて

0

私が見るところでは、それはGradleのバージョンの問題です。 (Gradle and Java 9 compatibility issue)。

あなたは、CLI REF、4.3.1にラッパーをアップグレードする必要があります。

# upgrade Gradle to 4.3.1 
gradle wrapper --gradle-version 4.3.1 # not ./gradlew 

は、それが動作するかどうか私に教えてください。

1

おそらく、MacOSXので

JAVA_HOME=/path/to/jdk9 

に一致するように日食に使用されるシステム変数でJAVA_HOMEと Javaのバージョンを更新しようとする必要があり、何かのように:

JAVA_HOME = /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home/bin 
0

私はjava_homeを変更しましたアップグレードされたGradle。今それは働いています。

+0

eclips酸素のbuidshipがJAVA 9にアップグレードされていないため、Java8 –

関連する問題