3

JDK9 (9-ea+143) を試していますが、設定する必要があります--add-modules java.xml.bind。私が試してみました:

  • 設定GRADLE_OPTS="--add-modules java.xml.bind '-Dorg.gradle.jvmargs=--add-modules java.xml.bind'"
  • org.gradle.jvmargs=--add-modules java.xml.bindgradle.properties での設定。
  • test { jvmArgs '--add-modules java.xml.bind' }build.gradle への追加
  • tasks.withType(Test) { jvmArgs '--add-modules java.xml.bind' }build.gradle への追加
  • tasks.withType(JavaExec) { jvmArgs '--add-modules java.xml.bind' }build.gradle への追加

テストはまだ失敗します。私は何が欠けていますか?

https://github.com/henrik242/gradle-jdk9-test-problemにサンプルプロジェクトがあります

✨  ./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

1 に答える 1

4

build.gradle に以下を追加すると機能します。

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

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

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

もっと簡単な方法はありますか?

編集:これも機能します:

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

tasks.withType(Test) {
  jvmArgs += ["--add-modules", "java.xml.bind"]
}
于 2016-11-10T17:46:50.667 に答える