9

我正在将我的 gradle 构建文件集成到支持多个 JDK 的 eclipse 开发环境中。虽然大多数开发人员都安装了多个版本,但正确的行为是使用在 System Preferences->Java->Installed JREs 页面上选中的“默认 JRE”。

有没有办法让gradle设置JAVA_HOME(或“org.gradle.java.home”??)到这个?如果没有,对于这样一群开发人员来说,最好的方法有什么建议吗?对于一个人来说,这并不是一个真正的问题,它正在尝试找到一种通用的方法,该方法可以扩展到我们这个让我搜索的群体!

谢谢!

4

3 回答 3

13

我仍然不完全确定您的要求,但这里有一些不同的看法。

  1. 如果您想做的是让您的代码(在 Gradle 和 Eclipse 中)编译以使字节码与特定版本的 Java 兼容,请使用类似这样的东西。这不会更改 Gradle 或 Eclipse 在编译期间使用的 Java 版本,只会使最终结果与您指定的版本“字节码兼容”。Luis 提到的设置默认为在更通用的 Java 插件级别设置的值。

    sourceCompatibility = '1.6' //or '1.5' or '1.7', etc.
    
  2. 默认情况下,Gradle Eclipse 插件将在您的.classpath文件中生成以下条目。我相信这总是指向您在 Eclipse 中指定的默认值,但我可能错了。

    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER" exported="true"/>
    

    如果您想更改该容器是什么,请在 Eclipse 中选择您要查找的容器,然后在.classpath文件中查找正确的容器值。然后你可以在构建文件中指定它:

    eclipse.classpath.containers 'whatever the container value is'
    
  3. 但是,如果您想要更改 Gradle 运行的 JAVA_HOME 以匹配 Eclipse 中选择的默认值,我认为您将遇到困难。我不确定是否有一个容易的地方以编程方式找到该值。不过,您可能可以从相反的方向进行设置。让开发人员设置 JAVA_HOME 以匹配他们的 Eclipse 默认值。然后他们可以为他们的 JRE 引用 Eclipse 配置中的 JAVA_HOME 环境变量。

于 2012-08-16T23:01:36.363 回答
4

如果你有不同版本的 jdk 很容易

apply plugin: 'java'
apply plugin: 'eclipse'

eclipse {
  jdt {
    //if you want to alter the java versions (by default they are configured with gradle java plugin settings):
    sourceCompatibility = 1.6
    targetCompatibility = 1.5

现在,如果您使用不同的 JVM 1.6.XX 并且想要针对特定​​的,我不确定

于 2012-08-14T16:01:45.030 回答
4

尝试从 Eclipse Marketplace 安装“Gradle IDE Pack”。我在 Eclipse Luna 上,可以在“Preferences > Gradle > Arguments”菜单下看到这个选项:

Eclipse Gradle 插件参数对话框

您可以使用“文件”命令验证您选择的 JRE 是否已被使用,如本答案中所述。

于 2015-05-15T18:00:35.567 回答