Commit 01d96d88 authored by dsq's avatar dsq

fix:kotlin版本更新

parent 67eef1b9
......@@ -9,6 +9,10 @@ org.gradle.jvmargs=-Xmx8192m -XX:MaxMetaspaceSize=1024m -Dfile.encoding=UTF-8
#Android
android.nonTransitiveRClass=true
android.useAndroidX=true
# AGP 9 默认的新 DSL / 内置 Kotlin 不能和 KMP 的 com.android.application 放在同一个模块。
# 这两个开关保留旧行为,到 AGP 10 之前可用。
android.builtInKotlin=false
android.newDsl=false
kotlin.native.cacheKind=none
......@@ -23,13 +27,13 @@ kotlin.debug.generateLineNumbers=true
kotlin.debug.generateLocalVariables=true
ohosSkikoVersion=0.9.22.2-0.5.0-30
ohosSkikoVersion=0.150.1-0.1.0-05
# 统一渲染(fusion-renderer);自渲染用 skia
#rendererBackend=fusion-renderer
rendererBackend=skia
#Enable all of the following switches to improve debug incremental compilation performance.
org.gradle.caching=true
org.gradle.caching=false
org.gradle.configuration-cache=true
org.gradle.parallel=true
kotlin.incremental.native=true
......
[versions]
# Build & Android
agp = "8.2.2"
agp = "8.11.1"
android-compileSdk = "36"
android-minSdk = "24"
android-targetSdk = "36"
......@@ -23,12 +23,12 @@ junit = "4.13.2"
# Compose
compose = "1.9.4"
compose-material3 = "1.4.0"
composeMultiplatform = "1.9.2-0.5.0-30"
composeMultiplatform = "1.12.0-0.1.0-05"
# Kotlin & testing
kotlin = "2.2.21-0.5.0-16"
kotlinx-coroutines = "1.10.2-0.5.0-15"
atomicFu = "0.31.0-0.5.0-15"
kotlin = "2.4.20-0.1.0-06"
kotlinx-coroutines = "1.11.0-0.1.0-05"
atomicFu = "0.33.0-0.1.0-05"
......
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://mirrors.tencent.com/gradle/gradle-8.9-bin.zip
distributionUrl=https\://mirrors.tencent.com/gradle/gradle-9.4.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
......
......@@ -7,14 +7,14 @@
"ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.",
"specifiers": {
"@cpf-kmp-cmp/compose@libs/compose.har": "@cpf-kmp-cmp/compose@libs/compose.har",
"libcompose_arkui_utils.so@../oh_modules/.ohpm/@cpf-kmp-cmp+compose@zncqui1ex3auvconwpmijgxzo6f2eohsbim07tesnmk=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libcompose_arkui_utils": "libcompose_arkui_utils.so@../oh_modules/.ohpm/@cpf-kmp-cmp+compose@zncqui1ex3auvconwpmijgxzo6f2eohsbim07tesnmk=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libcompose_arkui_utils",
"libcompose_arkui_utils.so@../oh_modules/.ohpm/@cpf-kmp-cmp+compose@nusv4hdaq9qnu2am9w0s6ayqu7ottfkx6bvicvx8ppk=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libcompose_arkui_utils": "libcompose_arkui_utils.so@../oh_modules/.ohpm/@cpf-kmp-cmp+compose@nusv4hdaq9qnu2am9w0s6ayqu7ottfkx6bvicvx8ppk=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libcompose_arkui_utils",
"libentry.so@src/main/cpp/types/libentry": "libentry.so@src/main/cpp/types/libentry",
"libskikobridge.so@../oh_modules/.ohpm/@cpf-kmp-cmp+compose@zncqui1ex3auvconwpmijgxzo6f2eohsbim07tesnmk=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libskikobridge": "libskikobridge.so@../oh_modules/.ohpm/@cpf-kmp-cmp+compose@zncqui1ex3auvconwpmijgxzo6f2eohsbim07tesnmk=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libskikobridge"
"libskikobridge.so@../oh_modules/.ohpm/@cpf-kmp-cmp+compose@nusv4hdaq9qnu2am9w0s6ayqu7ottfkx6bvicvx8ppk=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libskikobridge": "libskikobridge.so@../oh_modules/.ohpm/@cpf-kmp-cmp+compose@nusv4hdaq9qnu2am9w0s6ayqu7ottfkx6bvicvx8ppk=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libskikobridge"
},
"packages": {
"@cpf-kmp-cmp/compose@libs/compose.har": {
"name": "@cpf-kmp-cmp/compose",
"version": "1.9.2-0.3.0",
"version": "1.12.0-0.1.0-10",
"resolved": "libs/compose.har",
"registryType": "local",
"dependencies": {
......@@ -22,10 +22,10 @@
"libskikobridge.so": "file:./src/main/cpp/types/libskikobridge"
}
},
"libcompose_arkui_utils.so@../oh_modules/.ohpm/@cpf-kmp-cmp+compose@zncqui1ex3auvconwpmijgxzo6f2eohsbim07tesnmk=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libcompose_arkui_utils": {
"libcompose_arkui_utils.so@../oh_modules/.ohpm/@cpf-kmp-cmp+compose@nusv4hdaq9qnu2am9w0s6ayqu7ottfkx6bvicvx8ppk=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libcompose_arkui_utils": {
"name": "libcompose_arkui_utils.so",
"version": "1.0.0",
"resolved": "../oh_modules/.ohpm/@cpf-kmp-cmp+compose@zncqui1ex3auvconwpmijgxzo6f2eohsbim07tesnmk=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libcompose_arkui_utils",
"resolved": "../oh_modules/.ohpm/@cpf-kmp-cmp+compose@nusv4hdaq9qnu2am9w0s6ayqu7ottfkx6bvicvx8ppk=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libcompose_arkui_utils",
"registryType": "local"
},
"libentry.so@src/main/cpp/types/libentry": {
......@@ -34,10 +34,10 @@
"resolved": "src/main/cpp/types/libentry",
"registryType": "local"
},
"libskikobridge.so@../oh_modules/.ohpm/@cpf-kmp-cmp+compose@zncqui1ex3auvconwpmijgxzo6f2eohsbim07tesnmk=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libskikobridge": {
"libskikobridge.so@../oh_modules/.ohpm/@cpf-kmp-cmp+compose@nusv4hdaq9qnu2am9w0s6ayqu7ottfkx6bvicvx8ppk=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libskikobridge": {
"name": "libskikobridge.so",
"version": "0.0.0",
"resolved": "../oh_modules/.ohpm/@cpf-kmp-cmp+compose@zncqui1ex3auvconwpmijgxzo6f2eohsbim07tesnmk=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libskikobridge",
"resolved": "../oh_modules/.ohpm/@cpf-kmp-cmp+compose@nusv4hdaq9qnu2am9w0s6ayqu7ottfkx6bvicvx8ppk=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libskikobridge",
"registryType": "local"
}
}
......
......@@ -18,9 +18,24 @@
#
set -e
# harmony-runscript-timing-v2
# Record script start time
START_TIME=$(date +%s)
format_phase_duration_line() {
local label="$1"
local from_sec="$2"
local to_sec="$3"
local elapsed=$((to_sec - from_sec))
if (( elapsed < 0 )); then
elapsed=0
fi
local minutes=$((elapsed / 60))
local remain_sec=$((elapsed % 60))
echo -e " - ${label}: ${minutes}m${remain_sec}s (${elapsed}s)"
}
# ====================== [1. Default Configuration and Parameter Parsing] ======================
DEFAULT_PLATFORM="ohosArm64"
DEFAULT_TARGET_ID="127.0.0.1:5555"
......@@ -159,6 +174,103 @@ if [ -n "$LOCAL_OHOS_PATH" ]; then
GRADLE_OHOS_ARGS=(-PharmonyAppPath="$LOCAL_OHOS_PATH")
fi
# DevEco Studio 26 ships JBR 25 and this script puts that java on PATH for hdc/ohpm/hvigor.
# IDE launches usually have no JAVA_HOME, so ./gradlew would run on JDK 25. Gradle 8.9's
# embedded Kotlin parser then throws IllegalArgumentException: 25.0.2 and the build exits
# in a few hundred milliseconds. Gradle must use JDK 17–22. Leave the JBR on PATH.
DEVECO_JBR_HOME="$DEVECO_HOME/jbr/Contents/Home"
java_spec_version() {
local java_bin="$1"
local line spec
line=$("$java_bin" -version 2>&1 | head -n 1) || true
spec=$(printf '%s\n' "$line" | sed -n 's/.* version "\([^"]*\)".*/\1/p')
case "$spec" in
1.*) printf '%s\n' "$spec" | cut -d. -f2 ;;
"") ;;
*) printf '%s\n' "$spec" | cut -d. -f1 ;;
esac
}
java_home_is_gradle_ok() {
local home="$1"
[ -n "$home" ] || return 1
[ -x "$home/bin/java" ] || return 1
local home_real jbr_real
home_real=$(cd "$home" 2>/dev/null && pwd -P) || home_real="$home"
if [ -d "$DEVECO_JBR_HOME" ]; then
jbr_real=$(cd "$DEVECO_JBR_HOME" 2>/dev/null && pwd -P) || jbr_real="$DEVECO_JBR_HOME"
[ "$home_real" = "$jbr_real" ] && return 1
fi
local major
major=$(java_spec_version "$home/bin/java")
case "$major" in
17|18|19|20|21|22) return 0 ;;
*) return 1 ;;
esac
}
pick_gradle_java_home() {
if java_home_is_gradle_ok "${JAVA_HOME:-}"; then
printf '%s\n' "$JAVA_HOME"
return 0
fi
local v candidate d best best_rank
best=""
best_rank=99
# Bash locals are visible to functions called from here. Prefer 21, then 17.
remember_gradle_jdk() {
local home="$1" major rank
java_home_is_gradle_ok "$home" || return 0
major=$(java_spec_version "$home/bin/java")
case "$major" in
21) rank=0 ;;
17) rank=1 ;;
22) rank=2 ;;
*) rank=3 ;;
esac
if [ "$rank" -lt "$best_rank" ]; then
best="$home"
best_rank=$rank
fi
}
if [ -x /usr/libexec/java_home ]; then
for v in 21 17 22 20 19 18; do
candidate=$(/usr/libexec/java_home -v "$v" 2>/dev/null) || candidate=""
remember_gradle_jdk "$candidate"
[ "$best_rank" -eq 0 ] && break
done
fi
if [ "$best_rank" -ne 0 ]; then
for d in /Library/Java/JavaVirtualMachines/*/Contents/Home \
"$HOME/Library/Java/JavaVirtualMachines/"*/Contents/Home \
/opt/homebrew/opt/openjdk@21/libexec/openjdk.jdk/Contents/Home \
/opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home \
/usr/local/opt/openjdk@21/libexec/openjdk.jdk/Contents/Home \
/usr/local/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home; do
remember_gradle_jdk "$d"
[ "$best_rank" -eq 0 ] && break
done
fi
if [ -n "$best" ]; then
printf '%s\n' "$best"
return 0
fi
return 1
}
GRADLE_JAVA_HOME="$(pick_gradle_java_home)" || GRADLE_JAVA_HOME=""
if [ -z "$GRADLE_JAVA_HOME" ]; then
echo -e "${RED}Error: Gradle cannot run on DevEco's bundled JBR (Java 25).${NC}"
echo -e "${RED}The build stops immediately and the only message is \"25.0.2\".${NC}"
echo "Install JDK 17 or 21, or set JAVA_HOME to that JDK, then run Debug again."
echo "DevEco JBR stays on PATH for hdc, ohpm, and hvigor."
exit 1
fi
export JAVA_HOME="$GRADLE_JAVA_HOME"
GRADLE_JAVA_MAJOR="$(java_spec_version "$JAVA_HOME/bin/java")"
echo "[Harmony-Debug-Pipeline] Build: Gradle JVM Java $GRADLE_JAVA_MAJOR at $JAVA_HOME (DevEco JBR is not used for Gradle)"
# ====================== [3. Gradle Build] ======================
echo "[Harmony-Debug-Pipeline] Build: Gradle KMP $OHOS_KMP_RUN_GRADLE_TASK (mode=$BUILD_MODE; first run slower, later incremental)"
echo "Working path: $(pwd)"
......@@ -302,27 +414,12 @@ fi
echo "------------------------------------------------------------"
echo -e "\033[32mBuild, install and app launch completed!\033[0m"
# Calculate total duration
ELAPSED_TIME=$((END_TIME - START_TIME))
MINUTES=$((ELAPSED_TIME / 60))
SECONDS=$((ELAPSED_TIME % 60))
echo -e "App info:"
echo -e " - Bundle: $BUNDLE_NAME"
echo -e " - Device: $TARGET_ID"
ELAPSED_TIME=$((HAP_START_TIME - START_TIME))
MINUTES=$((ELAPSED_TIME / 60))
SECONDS=$((ELAPSED_TIME % 60))
echo -e " - SO build time: ${MINUTES}m${SECONDS}s (${ELAPSED_TIME}s)"
ELAPSED_TIME=$((END_TIME - HAP_START_TIME))
MINUTES=$((ELAPSED_TIME / 60))
SECONDS=$((ELAPSED_TIME % 60))
echo -e " - HAP package and push time: ${MINUTES}m${SECONDS}s (${ELAPSED_TIME}s)"
ELAPSED_TIME=$((END_TIME - START_TIME))
MINUTES=$((ELAPSED_TIME / 60))
SECONDS=$((ELAPSED_TIME % 60))
echo -e " - Total time: ${MINUTES}m${SECONDS}s (${ELAPSED_TIME}s)"
format_phase_duration_line "SO build time" "$START_TIME" "$HAP_START_TIME"
format_phase_duration_line "HAP package and push time" "$HAP_START_TIME" "$END_TIME"
format_phase_duration_line "Total time" "$START_TIME" "$END_TIME"
# ====================== 【6. Keep alive】 ======================
echo ""
echo -e "\033[32m▶ App running (click Stop button to end)...\033[0m"
......
......@@ -15,6 +15,7 @@ rem See the License for the specific language governing permissions and
rem limitations under the License.
setlocal EnableDelayedExpansion
rem harmony-runscript-timing-v2
REM Run OHOS app on Windows (no debug / LLDB)
REM Usage: runOhosApp-Win.bat [options] [PLATFORM] [TARGET_ID]
REM Options: -b BUNDLE -a ABILITY -p LOCAL_OHOS_PATH
......@@ -50,7 +51,10 @@ if "!PLATFORM!"=="" set "PLATFORM=%DEFAULT_PLATFORM%"
if "!TARGET_ID!"=="" set "TARGET_ID=%DEFAULT_TARGET_ID%"
REM Record script start time (epoch seconds for elapsed calculation)
for /f %%t in ('powershell -NoProfile -Command "[int][double]::Parse((Get-Date -UFormat '%%s'))"') do set START_TIME=%%t
set "START_TIME=0"
set "HAP_START_TIME=0"
set "END_TIME=0"
call :record_epoch START_TIME
echo Run environment configuration:
echo - Platform: %PLATFORM%
......@@ -120,7 +124,7 @@ if not "%CURRENT_VERSION%"=="unknown" (
set "HDC_BIN=%DEVECO_PATH%\sdk\default\openharmony\toolchains\hdc.exe"
set "DEVECO_SDK_HOME=%DEVECO_PATH%\sdk"
set "PATH=%DEVECO_PATH%\tools\node;%DEVECO_PATH%\tools\ohpm\bin;%DEVECO_PATH%\tools\hvigor\bin;%DEVECO_SDK_HOME%;%PATH%"
set "PATH=%DEVECO_PATH%\jbr\bin;%DEVECO_PATH%\tools\node;%DEVECO_PATH%\tools\ohpm\bin;%DEVECO_PATH%\tools\hvigor\bin;%DEVECO_SDK_HOME%;%PATH%"
if not exist "%HDC_BIN%" (
echo Error: hdc not found at %HDC_BIN%
......@@ -145,6 +149,19 @@ if "%BUILD_MODE%"=="release" (
if not defined OHOS_KMP_RUN_GRADLE_TASK set "OHOS_KMP_RUN_GRADLE_TASK=:%OHOS_KMP_RUN_GRADLE_MODULE%:%OHOS_KMP_RUN_PUBLISH_TASK%"
if not defined OHOS_KMP_RUN_ENTRY_MODULE set "OHOS_KMP_RUN_ENTRY_MODULE=entry"
REM DevEco's bundled JBR is Java 25. It is on PATH for hdc/ohpm/hvigor, but Gradle 8.9
REM crashes on it with the message "25.0.2". Gradle must use JDK 17-22.
call :resolve_gradle_java_home
if not defined GRADLE_JAVA_HOME (
echo Error: Gradle cannot run on DevEco's bundled JBR ^(Java 25^).
echo The build stops immediately and the only message is "25.0.2".
echo Install JDK 17 or 21, or set JAVA_HOME to that JDK, then run Debug again.
echo DevEco JBR stays on PATH for hdc, ohpm, and hvigor.
exit /b 1
)
set "JAVA_HOME=%GRADLE_JAVA_HOME%"
echo [Harmony-Debug-Pipeline] Build: Gradle JVM JAVA_HOME=%JAVA_HOME% ^(DevEco JBR is not used for Gradle^)
REM ====================== Gradle Build ======================
echo [Harmony-Debug-Pipeline] Build: Gradle KMP %OHOS_KMP_RUN_GRADLE_TASK% (mode=%BUILD_MODE%; first run slower, later incremental)
echo Working path: %CD%
......@@ -167,7 +184,7 @@ if not "%LOCAL_OHOS_PATH%"=="" (
echo [Harmony-Debug-Pipeline] Build: KMP publish finished next ohpm/hvigor HAP (incremental builds may be faster)
echo - OHOS entry module: %OHOS_KMP_RUN_ENTRY_MODULE%
REM SO packaging end time / HAP build start time
for /f %%t in ('powershell -NoProfile -Command "[int][double]::Parse((Get-Date -UFormat '%%s'))"') do set HAP_START_TIME=%%t
call :record_epoch HAP_START_TIME
REM ====================== HAP build ======================
if not exist "%HARMONY_APP_DIR%" (
......@@ -275,7 +292,8 @@ if "%DEBUG_MODE%"=="debug" (
"%HDC_BIN%" -t %TARGET_ID% shell aa start -a %ABILITY_NAME% -b %BUNDLE_NAME%
)
REM Package push complete time (end time)
call :record_epoch END_TIME
echo ------------------------------------------------------------
echo Build, install and app launch completed!
......@@ -283,21 +301,32 @@ echo.
echo App info:
echo - Bundle: %BUNDLE_NAME%
echo - Device: %TARGET_ID%
set /a ELAPSED=HAP_START_TIME-START_TIME
set /a MINUTES=ELAPSED/60
set /a SECONDS=ELAPSED%%60
echo - SO build time: !MINUTES!m!SECONDS!s (!ELAPSED!s)
set /a ELAPSED=END_TIME-HAP_START_TIME
set /a MINUTES=ELAPSED/60
set /a SECONDS=ELAPSED%%60
echo - HAP package and push time: !MINUTES!m!SECONDS!s (!ELAPSED!s)
set /a ELAPSED=END_TIME-START_TIME
set /a MINUTES=ELAPSED/60
set /a SECONDS=ELAPSED%%60
echo - Total time: !MINUTES!m!SECONDS!s (!ELAPSED!s)
call :emit_phase_times
echo ------------------------------------------------------------
exit /b 0
:record_epoch
for /f "delims=" %%t in ('powershell -NoProfile -Command "[long][DateTimeOffset]::UtcNow.ToUnixTimeSeconds()"') do set "%~1=%%t"
exit /b 0
:emit_phase_times
if not defined START_TIME set "START_TIME=0"
if not defined HAP_START_TIME set "HAP_START_TIME=0"
if not defined END_TIME set "END_TIME=0"
call :emit_one_timing "SO build time" !HAP_START_TIME! !START_TIME!
call :emit_one_timing "HAP package and push time" !END_TIME! !HAP_START_TIME!
call :emit_one_timing "Total time" !END_TIME! !START_TIME!
exit /b 0
:emit_one_timing
set "PHASE_LABEL=%~1"
set /a ELAPSED=%~2-%~3
if !ELAPSED! LSS 0 set /a ELAPSED=0
set /a MINUTES=!ELAPSED!/60
set /a REMAIN_SEC=!ELAPSED!%%60
echo - !PHASE_LABEL!: !MINUTES!m!REMAIN_SEC!s (!ELAPSED!s)
exit /b 0
:show_help
echo Usage: %~nx0 [options] [PLATFORM] [TARGET_ID]
echo.
......@@ -319,3 +348,53 @@ echo %~nx0 -m release
echo %~nx0 -b com.test.app -a MainAbility
echo %~nx0 -p D:\path\to\external\ohos\project
exit /b 0
:resolve_gradle_java_home
set "GRADLE_JAVA_HOME="
set "GRADLE_JDK_RANK=9"
if defined JAVA_HOME call :consider_gradle_jdk "%JAVA_HOME%"
if "!GRADLE_JDK_RANK!"=="0" exit /b 0
for %%R in (
"C:\Program Files\Java"
"C:\Program Files\Eclipse Adoptium"
"C:\Program Files\Microsoft"
"C:\Program Files\Amazon Corretto"
"C:\Program Files\Zulu"
"C:\Program Files\BellSoft"
"%LOCALAPPDATA%\Programs\Eclipse Adoptium"
"%USERPROFILE%\.jdks"
) do (
if exist "%%~R\bin\java.exe" call :consider_gradle_jdk "%%~fR"
if exist "%%~R\" for /d %%D in ("%%~R\*") do call :consider_gradle_jdk "%%~fD"
)
exit /b 0
:consider_gradle_jdk
set "CANDIDATE=%~1"
if "%CANDIDATE%"=="" exit /b 0
if not exist "%CANDIDATE%\bin\java.exe" exit /b 0
for %%I in ("%CANDIDATE%") do set "CANDIDATE_FULL=%%~fI"
for %%I in ("%DEVECO_PATH%\jbr") do set "JBR_FULL=%%~fI"
if /I "%CANDIDATE_FULL%"=="%JBR_FULL%" exit /b 0
set "JAVA_SPEC="
for /f "tokens=3" %%v in ('"%CANDIDATE%\bin\java.exe" -version 2^>^&1') do (
if not defined JAVA_SPEC set "JAVA_SPEC=%%~v"
)
if not defined JAVA_SPEC exit /b 0
set "JAVA_MAJOR="
for /f "tokens=1,2 delims=." %%a in ("%JAVA_SPEC%") do (
if "%%a"=="1" (set "JAVA_MAJOR=%%b") else (set "JAVA_MAJOR=%%a")
)
set "THIS_RANK=9"
if "%JAVA_MAJOR%"=="21" set "THIS_RANK=0"
if "%JAVA_MAJOR%"=="17" set "THIS_RANK=1"
if "%JAVA_MAJOR%"=="22" set "THIS_RANK=2"
if "%JAVA_MAJOR%"=="20" set "THIS_RANK=3"
if "%JAVA_MAJOR%"=="19" set "THIS_RANK=3"
if "%JAVA_MAJOR%"=="18" set "THIS_RANK=3"
if "%THIS_RANK%"=="9" exit /b 0
if %THIS_RANK% LSS %GRADLE_JDK_RANK% (
set "GRADLE_JAVA_HOME=%CANDIDATE%"
set "GRADLE_JDK_RANK=%THIS_RANK%"
)
exit /b 0
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment