我正在尝试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.bind
。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
答案 0 :(得分: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"]
}