java 指定 version - 特定のJDKバージョンを使用するようにGradleに指示するにはどうすればよいですか?





5 Answers

gradle.propertiesにJDK_PATHを追加すると、ビルドはその特定のパスに依存するようになります。 代わりに次のコマンドラインパラメータでgradleタスクを実行する

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

このようにして、ビルドはいくつかの具体的なパスに依存しません。

java_home

私はこれを得るために把握することができません。

シナリオ:

  • 私はgradleで構築されたアプリケーションを持っています
  • アプリケーションはJavaFXを使用します

私が望むもの

  • アプリケーション/テスト/アプリケーション全体を構築するために使用されるJDKのインストールを指す変数(開発者マシンごとに定義された)を使用します。

変数を定義するgradle.propertiesファイルがあると思った。 何かのようなもの

JAVA_HOME_FOR_MY_PROJECT=<path to my desired JDK>

私が望まないもの

  • JAVA_HOMEを目的のJDKにポイントする

私は多くの提案で生きることができました:

  • 私のbuild.gradleスクリプトでチェックできるシステム環境変数を定義するソリューション
  • gradle.propertiesで定義された変数
  • ビルド・コンテキスト( use JAVA_HOME=<my special JDK path defined somewhere else defined>ようなもの)のためだけにJAVA_HOME変数をオーバーライドする
  • 私が考えなかった何か

質問:

  • どのように変数を(どのように定義され、 gradle.properties 、システム環境変数の変数として...)ビルドプロセスに配線するのですか?

私は複数のJDK7を利用でき、特別なバージョン(最小JDK_uバージョン)を指す必要があります。

すべての答えは高く評価されており、正しい方向へのヒントがあれば感謝しています。




それに続くもう一つの選択肢があります。 あなたのgradleタスクでは、あなたは希望するjdkパスを設定することができます。 (質問が投稿されて以来、これはしばらくしています。この回答は誰かを助けることができます)

デプロイメントやその他のタスクを右クリックし、「Open Gradle Run Configuration ...」を選択します。

その後、「Java Home」に移動して、目的のjavaパスを貼り付けます。

binはgradleタスク自体によって追加されることに注意してください。 したがって、パスに「bin」を追加しないでください。




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 4.2を使用しています。 デフォルトのJDKはJava 9です.Java 9の初期に、Gradle 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






Related