我如何告诉摇篮使用特定的JDK版本?我如何告诉摇篮使用特定的JDK版本?(How do I tell

2019-05-08 19:09发布

我想不出来得到这个工作。

场景:

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

我想要的是

  • 使用一个变量(每显影剂机所定义的),它指向一个JDK的安装,其将被用于构建整个应用/测试/ ...

我想到了具有gradle.properties文件,定义变量。 就像是

JAVA_HOME_FOR_MY_PROJECT=<path to my desired JDK>

我不想要什么

  • 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版)。

任何答案是赞赏,我很感激每一个提示正确的方向。

Answer 1:

两种方法

  1. gradle.properties.gradle在目录HOME_DIRECTORY设置org.gradle.java.home=/path_to_jdk_directory

要么:

  1. 在你build.gradle

     compileJava.options.fork = true compileJava.options.forkOptions.executable = /path_to_javac 


Answer 2:

如果您在gradle.properties添加JDK_PATH您的构建变得依赖于特定的路径上。 相反,用下面的命令行运行parametemer 的gradle任务

gradle build -Dorg.gradle.java.home=/JDK_PATH

这样,你的版本是不依赖于一些具体的路径上。



Answer 3:

要为摇篮相当于Maven的属性搜索时这里结束了人们maven.compiler.source (或<source>1.8</source> ):

在的build.gradle你可以做到这一点

apply plugin: 'java'
sourceCompatibility = 1.8
targetCompatibility = 1.8

看到这个摇篮文档 。



Answer 4:

如果您正在使用gradle这个包装执行,你可以像下面的运行与JDK路径命令

./gradlew -Dorg.gradle.java.home=/jdk_path_directory



Answer 5:

如果你正在使用Linux和gradle这个包装可以用以下解决方案。

添加路径local.properties文件:

javaHome=<path to JDK>

添加到您的gradlew脚本文件:

DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
source $DIR/local.properties 2>/dev/null

if ! [ -z "$javaHome" ]
then
  JAVA_HOME=$javaHome
fi

在此方案中,每个开发者都可以设置自己的JDK路径。 文件local.properties不应该被包括在版本控制系统。



Answer 6:

我在GRADLE_HOME /斌/ gradle这个文件中加入这一行- export JAVA_HOME=/path/to/java/version



Answer 7:

还有一个选择跟随。 在你的gradle这个任务,你可以设置你想要的jdk的路径。 (我知道这是一段时间,因为这个问题被张贴,这种回答可以帮助的人。)

右键单击部署或任何其他的任务,并选择“打开摇篮运行配置...”

然后导航到“Java主目录”,并粘贴你的Java路径。

请注意,仓位将被gradle这个任务本身添加。 所以,不要的“bin”添加到路径。



Answer 8:

有一个会自动下载/白手起家一个JDK一个摇篮插件:

https://plugins.gradle.org/plugin/com.github.rmee.jdk-bootstrap

没有IDE集成还和Windows需要一个体面的外壳。



Answer 9:

曾经出现在摇篮(Eclipse插件)

http://www.gradle.org/get-started

摇篮用它在你的路径中找到(检查,使用Java的版本)为准JDK。 另外,您也可以设置JAVA_HOME环境变量指向所需的JDK的安装目录。


如果你正在使用这个Eclipse插件或Enide工作室2014 ,替代JAVA_HOME使用(在首集)将在0.15版本,请参阅http://www.nodeclipse.org/history



Answer 10:

我使用的摇篮4.2。 默认JDK是爪哇9.在Java 9的早期天,摇篮4.2 JDK 8正确运行(未JDK 9)。

我设置JDK手动像这样,在文件%GRADLE_HOME%\bin\gradle.bat

@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem  Gradle startup script for Windows
@rem
@rem ##########################################################################

@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal

set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%..

@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=

@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome

@rem VyDN-start.
set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_144\
@rem VyDN-end.

set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init

echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.

goto fail

:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%


@rem VyDN-start.
set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_144\
@rem VyDN-end.


set JAVA_EXE=%JAVA_HOME%/bin/java.exe

if exist "%JAVA_EXE%" goto init

echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.

goto fail

:init
@rem Get command-line arguments, handling Windows variants

if not "%OS%" == "Windows_NT" goto win9xME_args

:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2

:win9xME_args_slurp
if "x%~1" == "x" goto execute

set CMD_LINE_ARGS=%*

:execute
@rem Setup the command line

set CLASSPATH=%APP_HOME%\lib\gradle-launcher-4.2.jar

@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.launcher.GradleMain %CMD_LINE_ARGS%

:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd

:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1

:mainEnd
if "%OS%"=="Windows_NT" endlocal

:omega


文章来源: How do I tell Gradle to use specific JDK version?