2017-11-26 21 views
5

Eclipse 내에서 내 gradled 프로젝트에 java9를 사용하고 싶습니다. 내가 도망 때 :gradle java9 플랫폼을 타겟팅 할 수 없습니다. 'Java SE 9'도구 체인을 사용합니다. 'JDK 8 (1.8)'

Run as> Gradle Test on GreeterTest.java 

를 다음 코드로 :

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()); 
    } 
} 

와 클래스 I는 다음과 같이 테스트 :

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).

당신은, 4.3.1에 CLI 심판 래퍼를 업그레이드해야합니다

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

가 작동하는지 알려주세요.

1

당신은 아마에서라도에서

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을 사용해야합니다. –