diff --git a/.github/workflows/check-codes.yml b/.github/workflows/check-codes.yml index def21b382..5a27e421d 100644 --- a/.github/workflows/check-codes.yml +++ b/.github/workflows/check-codes.yml @@ -15,11 +15,11 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Set up JDK 11 + - name: Set up JDK 17 uses: actions/setup-java@v4 with: distribution: 'zulu' - java-version: '11' + java-version: '17' java-package: 'jdk+fx' - name: Check Codes run: ./gradlew checkstyle checkTranslations --no-daemon --parallel diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index a8fa1e041..2ba27c6b9 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -13,11 +13,11 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Set up JDK 11 + - name: Set up JDK 17 uses: actions/setup-java@v4 with: distribution: 'zulu' - java-version: '11' + java-version: '17' java-package: 'jdk+fx' - name: Build with Gradle run: ./gradlew build --no-daemon diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Library.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Library.java index e77a5e861..ae5ce6864 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Library.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Library.java @@ -53,7 +53,8 @@ public class Library implements Comparable, Validation { "", Architecture.SYSTEM_ARCH.name().toLowerCase(Locale.ROOT), Architecture.SYSTEM_ARCH.getBits().getBit() - }, variants = {"", "native", "natives"}; + }; + String[] variants = {"", "native", "natives"}; POSSIBLE_NATIVE_DESCRIPTORS = new String[keys.length * variants.length]; StringBuilder builder = new StringBuilder(); diff --git a/README.md b/README.md index db048dcb5..f4a73c685 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ The software is distributed under [GPLv3](https://www.gnu.org/licenses/gpl-3.0.h If you want to submit a pull request, here are some requirements: * IDE: IntelliJ IDEA -* Compiler: Java 11+ +* Compiler: Java 17+ * Do NOT modify `gradle` files ### Compilation diff --git a/README_cn.md b/README_cn.md index c97c3ce8d..fee24bb43 100644 --- a/README_cn.md +++ b/README_cn.md @@ -41,7 +41,7 @@ HMCL 有着强大的跨平台能力。它不仅支持 Windows、Linux、macOS 如果你想提交一个 Pull Request,必须遵守如下要求: * IDE:IntelliJ IDEA -* 编译器:Java 11+ +* 编译器:Java 17+ * **不要**修改 `gradle` 相关文件 ### 编译 diff --git a/README_tw.md b/README_tw.md index d130827ea..b92e7d5df 100644 --- a/README_tw.md +++ b/README_tw.md @@ -41,7 +41,7 @@ HMCL 有著強大的跨平臺能力。它不僅支援 Windows、Linux、macOS 如果你想提交一個 Pull Request,必須遵守如下要求: * IDE:IntelliJ IDEA -* 編譯器:Java 11+ +* 編譯器:Java 17+ * **不要**修改 `gradle` 相關文件 ### 編譯 diff --git a/build.gradle.kts b/build.gradle.kts index f3792e6df..5aa03e82b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -32,7 +32,8 @@ subprojects { } dependencies { - "testImplementation"("org.junit.jupiter:junit-jupiter:5.10.2") + "testImplementation"(rootProject.libs.junit.jupiter) + "testRuntimeOnly"("org.junit.platform:junit-platform-launcher") } tasks.withType { diff --git a/config/checkstyle/checkstyle.xml b/config/checkstyle/checkstyle.xml index 900c4340d..49e40fa3d 100644 --- a/config/checkstyle/checkstyle.xml +++ b/config/checkstyle/checkstyle.xml @@ -47,7 +47,7 @@ - + diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1153dc9df..6288456ca 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -17,6 +17,9 @@ jna = "5.17.0" pci-ids = "0.4.0" java-info = "1.0" +# testing +junit = "5.13.4" + # plugins shadow = "8.3.6" @@ -41,5 +44,8 @@ jna-platform = { module = "net.java.dev.jna:jna-platform", version.ref = "jna" } pci-ids = { module = "org.glavo:pci-ids", version.ref = "pci-ids" } java-info = { module = "org.glavo:java-info", version.ref = "java-info" } +# testing +junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit" } + [plugins] shadow = { id = "com.gradleup.shadow", version.ref = "shadow" } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index a4b76b953..1b33c55ba 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index c06f5fd41..e3f5ab3f5 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip networkTimeout=120000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index f5feea6d6..23d15a936 100755 --- a/gradlew +++ b/gradlew @@ -86,8 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s -' "$PWD" ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -115,7 +114,7 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar +CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -206,7 +205,7 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. @@ -214,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/gradlew.bat b/gradlew.bat index 9b42019c7..5eed7ee84 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -70,11 +70,11 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar +set CLASSPATH= @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell