2016-11-10 1 views
3

JDK9 (9-ea + 143)를 사용하려고 시도 중이므로 --add-modules java.xml.bind을 설정해야합니다. 나는 시도했다 :JDK9에서 --add-modules jvm 인수가 적용되지 않습니다.

  • 이 gradle.properties에 org.gradle.jvmargs=--add-modules java.xml.bind 설정 GRADLE_OPTS="--add-modules java.xml.bind '-Dorg.gradle.jvmargs=--add-modules java.xml.bind'"
  • 설정.
  • 추가 tasks.withType(Test) { jvmArgs '--add-modules java.xml.bind' }

테스트가 실패 할 build.gradle하는 tasks.withType(JavaExec) { jvmArgs '--add-modules java.xml.bind' } 추가

  • build.gradle하는 build.gradle하는 test { jvmArgs '--add-modules java.xml.bind' } 추가
  • . 내가 뭘 놓치고 있니? 쉬운 방법이

    compileJava { 
        options.compilerArgs += ["--add-modules", "java.xml.bind"] 
    } 
    
    compileTestJava { 
        options.compilerArgs += ["--add-modules", "java.xml.bind"] 
    } 
    
    test { 
        jvmArgs += ["--add-modules", "java.xml.bind"] 
    } 
    

    있습니까 :

    나는 https://github.com/henrik242/gradle-jdk9-test-problem build.gradle 다음을 추가 할 때 의미가 있습니다

    ✨ ./gradlew build 
    :compileJava 
    /foo/gradle-jdk9-test-problem/src/main/java/SomeClass.java:1: error: package javax.xml.bind does not exist 
    import javax.xml.bind.ValidationException; 
            ^
    /foo/gradle-jdk9-test-problem/src/main/java/SomeClass.java:5: error: cannot find symbol 
        public void doStuff() throws ValidationException { 
              ^
        symbol: class ValidationException 
        location: class SomeClass 
    /foo/gradle-jdk9-test-problem/src/main/java/SomeClass.java:6: error: cannot find symbol 
        throw new ValidationException("msg"); 
          ^
        symbol: class ValidationException 
        location: class SomeClass 
    3 errors 
    :compileJava FAILED 
    
  • 답변

    4

    에서 예제 프로젝트가?

    편집 : 이것은 또한 작동합니다

    tasks.withType(AbstractCompile) { 
        options.compilerArgs += ["--add-modules", "java.xml.bind"] 
    } 
    
    tasks.withType(Test) { 
        jvmArgs += ["--add-modules", "java.xml.bind"] 
    }