Gradle에 특정 JDK 버전을 사용하도록하려면 어떻게해야합니까?
이 작업을 수행 할 수 없습니다.
대본:
- 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 버전)을 가리켜 야합니다.
모든 답변에 감사 드리며 올바른 방향에 대한 모든 힌트에 감사드립니다.
두 가지 방법
- 에서
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
gradle.properties 에 JDK_PATH를 추가하면 빌드가 해당 특정 경로에 종속됩니다. 대신 다음 명령 줄 매개 변수를 사용하여 gradle 작업 을 실행하십시오.
gradle build -Dorg.gradle.java.home=/JDK_PATH
이렇게하면 빌드가 구체적인 경로에 의존하지 않습니다.
Maven 속성 maven.compiler.source
(또는 <source>1.8</source>
)에 해당하는 Gradle을 검색 할 때 여기에 끝나는 사람들에게 :
build.gradle에서는 다음을 통해이를 달성 할 수 있습니다
apply plugin: 'java'
sourceCompatibility = 1.8
targetCompatibility = 1.8
이에 대한 Gradle 설명서를 참조하십시오 .
gradle wrapper를 사용하여 실행하는 경우 다음과 같이 JDK 경로로 명령을 실행할 수 있습니다
./gradlew -Dorg.gradle.java.home=/jdk_path_directory
GRADLE_HOME / bin / gradle 파일에이 줄을 추가했습니다. export JAVA_HOME=/path/to/java/version
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
버전 관리 시스템에 파일 을 포함해서는 안됩니다.
따라야 할 옵션이 하나 더 있습니다. gradle 작업에서 원하는 jdk 경로를 설정할 수 있습니다. (질문이 게시 된 지 얼마 안되어서 알고 있습니다.이 답변은 누군가를 도울 수 있습니다.)
배포 또는 다른 작업을 마우스 오른쪽 버튼으로 클릭하고 "Open Gradle Run Configuration ..."을 선택하십시오.
그런 다음 "Java Home"으로 이동하여 원하는 Java 경로를 붙여 넣으십시오.
bin은 gradle 작업 자체에 의해 추가됩니다. 따라서 경로에 "bin"을 추가하지 마십시오.
JDK를 자동으로 다운로드 / 부트 스트하는 Gradle 플러그인이 있습니다.
https://plugins.gradle.org/plugin/com.github.rmee.jdk-bootstrap
IDE 통합은 아직 없으며 Windows에는 알맞은 셸이 필요합니다.
Gradle (Eclipse 플러그인) 에서 볼 수 있듯이
http://www.gradle.org/get-started
Gradle은 경로에서 찾은 JDK를 사용합니다 (확인하려면 java -version 사용). 또는 원하는 JDK의 설치 디렉토리를 가리 키도록 JAVA_HOME 환경 변수를 설정할 수 있습니다.
이 Eclipse 플러그인 또는 Enide Studio 2014 를 사용하는 경우 사용할 기본 JAVA_HOME (기본 설정에서 설정)은 0.15 버전입니다. http://www.nodeclipse.org/history
Gradle 4.2 사용하고 있습니다. 기본 JDK는 Java 9입니다. Java 9 초반에 Gradle 4.2는 JDK 8에서 올바르게 실행됩니다 (JDK 9 아님).
파일에서 %GRADLE_HOME%\bin\gradle.bat
다음 과 같이 JDK를 수동으로 설정했습니다 .
@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
특정 명령을 실행하도록 한 번만 설정하려면 다음을 수행하십시오.
JAVA_HOME=/usr/lib/jvm/java-11-oracle/ gw build
참고 URL : https://stackoverflow.com/questions/18487406/how-do-i-tell-gradle-to-use-specific-jdk-version
'IT story' 카테고리의 다른 글
객체의 모든 방법을 표시하는 방법? (0) | 2020.04.17 |
---|---|
Visual Studio 2013에서 모든 CAPS 메뉴 항목을 사용하지 않도록 설정 (0) | 2020.04.17 |
phtml이란 무엇이며 언제 .php 대신 .phtml 확장자를 사용해야합니까? (0) | 2020.04.17 |
Microsoft Web API : Server.MapPath를 어떻게 수행합니까? (0) | 2020.04.17 |
파이썬에서 0의 목록 (0) | 2020.04.17 |