我想不出来得到这个工作。
场景:
- 我有gradle这个构建的应用程序
- 该应用程序使用的JavaFX
我想要的是
- 使用一个变量(每显影剂机所定义的),它指向一个JDK的安装,其将被用于构建整个应用/测试/ ...
我想到了具有gradle.properties
文件,定义变量。 就像是
JAVA_HOME_FOR_MY_PROJECT=<path to my desired 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:
两种方法
- 在
gradle.properties
在.gradle
在目录HOME_DIRECTORY
设置org.gradle.java.home=/path_to_jdk_directory
要么:
在你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?