相关疑难解决方法(0)

如何告诉Gradle使用特定的JDK版本?

我无法弄清楚这是否有效.

场景:

  • 我有一个用gradle构建的应用程序
  • 该应用程序使用JavaFX

我想要的是

  • 使用一个变量(每个开发人员机器定义)指向JDK的安装,JDK将用于构建整个应用程序/ tests/...

我想过拥有gradle.properties文件,定义变量.就像是

JAVA_HOME_FOR_MY_PROJECT=<path to my desired JDK>
Run Code Online (Sandbox Code Playgroud)

我不想要的

  • 指向JAVA_HOME所需的JDK

我可以接受很多建议:

  • 定义系统环境变量的解决方案,我可以在build.gradle脚本中查看
  • gradle.properties中定义的变量
  • 仅为构建上下文重写JAVA_HOME变量(类似于use JAVA_HOME=<my special JDK path defined somewhere else defined>)
  • 我没有想到的其他事情

题:

  • 如何将变量(如何定义,作为gradle.properties系统环境变量中的变量,......)连接到构建过程?

我有多个JDK7可用,需要指向一个特殊版本(最低JDK_u版本).

任何答案都表示赞赏,我感谢每一个提示正确的方向.

java gradle build.gradle

242
推荐指数
14
解决办法
25万
查看次数

使用 gradle eclipse 插件指定 JRE 容器

即使将sourceCompatibility和的属性targetCompatibility设置为特定的 JRE 版本,JRE_CONTAINER唯一的类路径是否会生成为<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER" exported="true"/>,并且 eclipse 设置中“已安装的 JRE”下的默认 JRE 版本并不总是与我想要的 JRE 版本匹配在我的项目中使用。

当使用 gradle 运行 gradle 时,如何询问 gradle 将 JRE_CONTAINER 设置为特定版本gradle eclipse


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

ext {
    target = "1.5"
}

def jreContainer = 'org.eclipse.jdt.launching.JRE_CONTAINER'

if (target == '1.4' || target == '1.5') {
    jreContainer += '/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-' + target
} else if (target == '1.6' || target == '1.7') {
    jreContainer += '/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-' + target
} …
Run Code Online (Sandbox Code Playgroud)

java eclipse plugins gradle

5
推荐指数
1
解决办法
3303
查看次数

使用Eclipse在Gradle中选择正确的JRE版本

我正在使用Gradle和Eclipse插件为我的项目生成项目文件,但我无法让它将正确的JRE版本放入其中.classpath.我可以添加一个JRE容器,但我无法弄清楚如何删除默认容器 - 并且由于这个项目是在开发人员之间共享的,他们可能在Eclipse中设置了不同的默认值,我想手动控制它.

我觉得这应该有用的方式是这样的:

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

sourceCompatibility = 1.6
Run Code Online (Sandbox Code Playgroud)

既然targetCompatibility是相同的sourceCompatibility,我希望这个设置转到Eclipse设置,找到一个与源版本匹配的JRE(是的,我的机器上有一个JRE安装和单独的JDK安装)并使用它.

相反,它选择了默认值,在我的机器上恰好是Java 7.

我尝试在Eclipse配置中添加一些内容:

eclipse {
    jdt {
        sourceCompatibility = 1.6 // tried with and without this
    }
    classpath {
        // tried various ways to remove the old entry, among them:
        file.beforeMerged { p -> p.entries.clear() }

        // and then I add the "correct" one
        containers 'org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.6.0_45'
    }
}
Run Code Online (Sandbox Code Playgroud)

做这样的事情我最终得到两个 JRE容器.classpath:

<?xml version="1.0" encoding="UTF-8"?> …
Run Code Online (Sandbox Code Playgroud)

java eclipse gradle

5
推荐指数
1
解决办法
6791
查看次数

标签 统计

gradle ×3

java ×3

eclipse ×2

build.gradle ×1

plugins ×1