Gradle不尊重JDK9中的--add-modules jvm参数 [英] Gradle does not honor --add-modules jvm argument in JDK9

查看:1059
本文介绍了Gradle不尊重JDK9中的--add-modules jvm参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试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 在gradle.properties中。

  • 添加 test {jvmArgs'--add-modules java.xml。绑定'} 构建.gradle

  • 添加 tasks.withType(Test){jvmArgs'--add-modules java.xml。绑定'} 到build.gradle

  • 添加 tasks.withType(JavaExec){jvmArgs'--add-modules java.xml。绑定'} 构建.gradle



测试仍然失败。我缺少什么?



我在 https://github.com/henrik242/gradle-jdk9-test-problem

 ✨./gradlew build 
:compileJava
/foo/gradle-jdk9-test-problem/src/main/java/SomeClass.java:1:错误:软件包javax.xml.bind不存在
import javax.xml.bind.ValidationException;
^
/foo/gradle-jdk9-test-problem/src/main/java/SomeClass.java:5:错误:找不到符号
public void doStuff()throws ValidationException {
^
symbol:class ValidationException
location:class SomeClass
/foo/gradle-jdk9-test-problem/src/main/java/SomeClass.java:6:error:can not找到符号
抛出新的ValidationException(msg);
^
symbol:class ValidationException
location:class SomeClass
3 errors
:compileJava FAILED


解决方案

它可以在将以下内容添加到build.gradle时使用:

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

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

测试{
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]
}


I am trying JDK9 (9-ea+143), and need to set --add-modules java.xml.bind. I have tried:

  • Setting GRADLE_OPTS="--add-modules java.xml.bind '-Dorg.gradle.jvmargs=--add-modules java.xml.bind'"
  • Setting org.gradle.jvmargs=--add-modules java.xml.bind in gradle.properties.
  • Adding test { jvmArgs '--add-modules java.xml.bind' } to build.gradle
  • Adding tasks.withType(Test) { jvmArgs '--add-modules java.xml.bind' } to build.gradle
  • Adding tasks.withType(JavaExec) { jvmArgs '--add-modules java.xml.bind' } to build.gradle

Tests still fail. What am I missing?

I have an example project in 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

解决方案

It works when adding the following to 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"]
}

Is there an easier way?

EDIT: This also works:

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

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

这篇关于Gradle不尊重JDK9中的--add-modules jvm参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆