From ef076d1cf88905b880c4977305cfd48e1bb19ad7 Mon Sep 17 00:00:00 2001 From: SuperMonster003 Date: Wed, 24 Sep 2025 15:53:37 +0800 Subject: [PATCH] =?UTF-8?q?6.7.0=20-=20Alpha6=20-=20=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E7=9B=AE=E5=BD=95=20(Version=20Catalogs)=20?= =?UTF-8?q?=E9=9B=86=E4=B8=AD=E7=AE=A1=E7=90=86=20Gradle=20=E4=BE=9D?= =?UTF-8?q?=E8=B5=96=E5=92=8C=E6=8F=92=E4=BB=B6=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .changelog/lang_zh-Hans.json | 3 +- gradle/libs.versions.toml | 152 ++++++++++++++++++ libs/paddleocr/build.gradle | 4 +- libs/rapidocr/build.gradle | 9 +- modules/apk-parser/build.gradle | 6 +- modules/apk-signer/build.gradle | 14 +- modules/color-picker/build.gradle | 4 +- modules/jieba-analysis/build.gradle | 13 +- .../material-date-time-picker/build.gradle | 16 +- modules/material-dialogs/build.gradle | 8 +- settings.gradle.kts | 12 ++ 11 files changed, 200 insertions(+), 41 deletions(-) create mode 100644 gradle/libs.versions.toml diff --git a/.changelog/lang_zh-Hans.json b/.changelog/lang_zh-Hans.json index 5135b228..1fb96a96 100644 --- a/.changelog/lang_zh-Hans.json +++ b/.changelog/lang_zh-Hans.json @@ -33,7 +33,8 @@ "文件管理器浮动按钮展开后点击菜单项时优化菜单收起时机", "崩溃报告页面支持双指缩放调整字体大小并添加常用功能按钮", "应用启动器图标支持自适应图标特性 _[`issue #405`](http://issues.autojs6.com/405)_", - "Gradle 构建脚本提升 7z 格式文件的解压效率" + "Gradle 构建脚本提升 7z 格式文件的解压效率", + "使用版本目录 (Version Catalogs) 集中管理 Gradle 依赖和插件版本" ], "dependency": [ "本地化 Root Shell 版本 1.6", diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 00000000..382b6d95 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,152 @@ +[versions] +analytics = "14.4.0" +android-device-names = "2.1.1" +android-logging-log4j = "1.0.3" +android-support-v7 = "28.0.0" +androidannotations = "4.8.0" +animated-svg-view = "1.0.6" +annotation = "1.9.1" +appcompat = "1.7.1" +arsclib = "1.3.5" +barcode-scanning = "17.3.0" +bcpkix-jdk15on = "1.70" +bcprov-jdk15on = "1.70" +cardview = "1.0.0" +circleimageview = "3.1.0" +circularreveal = "2.0.1" +commonmark = "commonmark-parent-0.9.0" +commons-compress = "1.28.0" +commons-lang3 = "3.18.0" +constraintlayout = "2.2.1" +core-ktx = "1.13.1" +easywindow = "10.3" +eventbus = "3.3.1" +expandablerecyclerview = "3.0.0-RC1" +flexbox = "3.0.0" +flexmark-html2md = "0.64.8" +foojay-resolver-convention = "1.0.0" +glide = "4.16.0" +gson = "2.13.1" +icu4j = "77.1" +jcip-annotations = "1.0" +jdeferred = "1.2.6" +joda-time = "2.14.0" +jsoup = "1.20.1" +junit = "4.13.2" +junit-jupiter = "5.13.0" +junit-quickcheck-core = "0.9.2" +junit-quickcheck-generators = "0.9.1" +leakcanary = "2.14" +licensesdialog = "2.2.0" +log4j = "1.2.17" +material = "1.12.0" +materialprogressbar = "1.6.1" +multidex = "2.0.1" +okhttp = "4.12.0" +opencc = "1.2.2" +paho-android-service = "1.1.1" +paho-client-mqttv3 = "1.1.0" +pinyin4j = "2.5.1" +preference-ktx = "1.2.1" +prov = "1.58.0.0" +recyclerview = "1.4.0" +retrofit = "2.12.0" +retrofit2-kotlin-coroutines-adapter = "0.9.2" +room = "2.7.2" +roundedimageview = "2.3.0" +rxandroid = "2.1.1" +rxjava = "2.2.21" +shizuku = "13.1.5" +swiperefreshlayout = "1.1.0" +test-espresso-core = "3.6.1" +test-junit-version = "1.2.1" +test-rules = "1.6.1" +test-runner = "1.6.2" +text-recognition-chinese = "16.0.1" +toaster = "12.6" +versioncompare = "1.5.0" +webkit = "1.14.0" +xz = "1.10" +zip4j = "2.11.5" + +[libraries] +analytics = { module = "com.flurry.android:analytics", version.ref = "analytics" } +android-device-names = { module = "com.jaredrummler:android-device-names", version.ref = "android-device-names" } +android-logging-log4j = { module = "de.mindpipe.android:android-logging-log4j", version.ref = "android-logging-log4j" } +androidannotations = { module = "org.androidannotations:androidannotations", version.ref = "androidannotations" } +androidannotations-api = { module = "org.androidannotations:androidannotations-api", version.ref = "androidannotations" } +animated-svg-view = { module = "com.jaredrummler:animated-svg-view", version.ref = "animated-svg-view" } +annotation = { module = "androidx.annotation:annotation", version.ref = "annotation" } +apache-commons-compress = { module = "org.apache.commons:commons-compress", version.ref = "commons-compress" } +appcompat = { module = "androidx.appcompat:appcompat", version.ref = "appcompat" } +appcompat-v7 = { module = "com.android.support:appcompat-v7", version.ref = "android-support-v7" } +arsclib = { module = "io.github.reandroid:ARSCLib", version.ref = "arsclib" } +barcode-scanning = { module = "com.google.mlkit:barcode-scanning", version.ref = "barcode-scanning" } +bcpkix-jdk15on = { module = "org.bouncycastle:bcpkix-jdk15on", version.ref = "bcpkix-jdk15on" } +bcprov-jdk15on = { module = "org.bouncycastle:bcprov-jdk15on", version.ref = "bcprov-jdk15on" } +cardview = { module = "androidx.cardview:cardview", version.ref = "cardview" } +circleimageview = { module = "de.hdodenhof:circleimageview", version.ref = "circleimageview" } +circularreveal = { module = "com.github.ozodrukh:CircularReveal", version.ref = "circularreveal" } +commonmark = { module = "com.github.atlassian:commonmark-java", version.ref = "commonmark" } +commons-lang3 = { module = "org.apache.commons:commons-lang3", version.ref = "commons-lang3" } +constraintlayout = { module = "androidx.constraintlayout:constraintlayout", version.ref = "constraintlayout" } +core-ktx = { module = "androidx.core:core-ktx", version.ref = "core-ktx" } +easywindow = { module = "com.github.getActivity:EasyWindow", version.ref = "easywindow" } +eventbus = { module = "org.greenrobot:eventbus", version.ref = "eventbus" } +expandablerecyclerview = { module = "com.bignerdranch.android:expandablerecyclerview", version.ref = "expandablerecyclerview" } +flexbox = { module = "com.google.android.flexbox:flexbox", version.ref = "flexbox" } +flexmark-html2md = { module = "com.vladsch.flexmark:flexmark-html2md-converter", version.ref = "flexmark-html2md" } +glide = { module = "com.github.bumptech.glide:glide", version.ref = "glide" } +glide-ksp = { module = "com.github.bumptech.glide:ksp", version.ref = "glide" } +gson = { module = "com.google.code.gson:gson", version.ref = "gson" } +icu4j = { module = "com.ibm.icu:icu4j", version.ref = "icu4j" } +jcip-annotations = { module = "net.jcip:jcip-annotations", version.ref = "jcip-annotations" } +jdeferred = { module = "org.jdeferred:jdeferred-android-aar", version.ref = "jdeferred" } +joda-time = { module = "joda-time:joda-time", version.ref = "joda-time" } +jsoup = { module = "org.jsoup:jsoup", version.ref = "jsoup" } +junit = { module = "junit:junit", version.ref = "junit" } +junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit-jupiter" } +junit-quickcheck-core = { module = "com.pholser:junit-quickcheck-core", version.ref = "junit-quickcheck-core" } +junit-quickcheck-generators = { module = "com.pholser:junit-quickcheck-generators", version.ref = "junit-quickcheck-generators" } +leakcanary = { module = "com.squareup.leakcanary:leakcanary-android", version.ref = "leakcanary" } +licensesdialog = { module = "de.psdev.licensesdialog:licensesdialog", version.ref = "licensesdialog" } +log4j = { module = "log4j:log4j", version.ref = "log4j" } +material = { module = "com.google.android.material:material", version.ref = "material" } +materialprogressbar = { module = "me.zhanghai.android.materialprogressbar:library", version.ref = "materialprogressbar" } +multidex = { module = "androidx.multidex:multidex", version.ref = "multidex" } +okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" } +opencc = { module = "com.github.brooklet:android-opencc", version.ref = "opencc" } +paho-android-service = { module = "org.eclipse.paho:org.eclipse.paho.android.service", version.ref = "paho-android-service" } +paho-client-mqttv3 = { module = "org.eclipse.paho:org.eclipse.paho.client.mqttv3", version.ref = "paho-client-mqttv3" } +pinyin4j = { module = "com.belerweb:pinyin4j", version.ref = "pinyin4j" } +preference-ktx = { module = "androidx.preference:preference-ktx", version.ref = "preference-ktx" } +prov = { module = "com.madgag.spongycastle:prov", version.ref = "prov" } +recyclerview = { module = "androidx.recyclerview:recyclerview", version.ref = "recyclerview" } +recyclerview-v7 = { module = "com.android.support:recyclerview-v7", version.ref = "android-support-v7" } +retrofit = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit" } +retrofit-adapter-rxjava2 = { module = "com.squareup.retrofit2:adapter-rxjava2", version.ref = "retrofit" } +retrofit-converter-gson = { module = "com.squareup.retrofit2:converter-gson", version.ref = "retrofit" } +retrofit2-kotlin-coroutines-adapter = { module = "com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter", version.ref = "retrofit2-kotlin-coroutines-adapter" } +room-compiler = { module = "androidx.room:room-compiler", version.ref = "room" } +room-ktx = { module = "androidx.room:room-ktx", version.ref = "room" } +room-runtime = { module = "androidx.room:room-runtime", version.ref = "room" } +roundedimageview = { module = "com.makeramen:roundedimageview", version.ref = "roundedimageview" } +rxandroid = { module = "io.reactivex.rxjava2:rxandroid", version.ref = "rxandroid" } +rxjava = { module = "io.reactivex.rxjava2:rxjava", version.ref = "rxjava" } +shizuku-api = { module = "dev.rikka.shizuku:api", version.ref = "shizuku" } +shizuku-provider = { module = "dev.rikka.shizuku:provider", version.ref = "shizuku" } +support-annotations = { module = "com.android.support:support-annotations", version.ref = "android-support-v7" } +swiperefreshlayout = { module = "androidx.swiperefreshlayout:swiperefreshlayout", version.ref = "swiperefreshlayout" } +test-espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "test-espresso-core" } +test-ext-junit = { module = "androidx.test.ext:junit", version.ref = "test-junit-version" } +test-rules = { module = "androidx.test:rules", version.ref = "test-rules" } +test-runner = { module = "androidx.test:runner", version.ref = "test-runner" } +text-recognition-chinese = { module = "com.google.mlkit:text-recognition-chinese", version.ref = "text-recognition-chinese" } +toaster = { module = "com.github.getActivity:Toaster", version.ref = "toaster" } +tukaani-xz = { module = "org.tukaani:xz", version.ref = "xz" } +versioncompare = { module = "io.github.g00fy2:versioncompare", version.ref = "versioncompare" } +webkit = { module = "androidx.webkit:webkit", version.ref = "webkit" } +zip4j = { module = "net.lingala.zip4j:zip4j", version.ref = "zip4j" } + +[plugins] +foojay-resolver-convention = { id = "org.gradle.toolchains.foojay-resolver-convention", version.ref = "foojay-resolver-convention" } \ No newline at end of file diff --git a/libs/paddleocr/build.gradle b/libs/paddleocr/build.gradle index f70b1d32..0d5e665f 100644 --- a/libs/paddleocr/build.gradle +++ b/libs/paddleocr/build.gradle @@ -144,8 +144,8 @@ dependencies { implementation project(path: ":libs:org.opencv-${versionMap.OPENCV}") - implementation 'androidx.core:core-ktx:1.13.1' - implementation "androidx.preference:preference-ktx:1.2.1" + implementation libs.core.ktx + implementation libs.preference.ktx } diff --git a/libs/rapidocr/build.gradle b/libs/rapidocr/build.gradle index f079108f..3b382f36 100644 --- a/libs/rapidocr/build.gradle +++ b/libs/rapidocr/build.gradle @@ -109,12 +109,9 @@ dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) - testImplementation 'junit:junit:4.13.2' - androidTestImplementation 'androidx.test.ext:junit:1.2.1' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' - - implementation 'androidx.core:core-ktx:1.13.1' - implementation 'androidx.appcompat:appcompat:1.7.0' + testImplementation libs.junit + androidTestImplementation libs.test.ext.junit + androidTestImplementation libs.test.espresso.core } diff --git a/modules/apk-parser/build.gradle b/modules/apk-parser/build.gradle index 043fb4d3..62898a60 100644 --- a/modules/apk-parser/build.gradle +++ b/modules/apk-parser/build.gradle @@ -28,7 +28,7 @@ android { } dependencies { - implementation 'org.bouncycastle:bcprov-jdk15on:1.70' - implementation 'org.bouncycastle:bcpkix-jdk15on:1.70' - implementation 'androidx.annotation:annotation:1.9.1' + implementation libs.bcprov.jdk15on + implementation libs.bcpkix.jdk15on + implementation libs.annotation } diff --git a/modules/apk-signer/build.gradle b/modules/apk-signer/build.gradle index 2d679652..a223b175 100644 --- a/modules/apk-signer/build.gradle +++ b/modules/apk-signer/build.gradle @@ -39,8 +39,8 @@ repositories { } dependencies { - implementation 'androidx.appcompat:appcompat:1.7.0' - implementation 'com.google.android.material:material:1.12.0' + implementation libs.appcompat + implementation libs.material // @Hint by SuperMonster003 on Mar 14, 2025. // ! Dependency "prov" contains "core" (zh-CN: 依赖 "prov" 已包含 "core"): @@ -48,9 +48,9 @@ dependencies { // ! | +--- com.madgag.spongycastle:core:1.58.0.0 // ! | \--- junit:junit:4.12 (*) // # implementation("com.madgag.spongycastle:core:1.58.0.0") - implementation("com.madgag.spongycastle:prov:1.58.0.0") + implementation(libs.prov) - testImplementation 'junit:junit:4.13.2' - androidTestImplementation 'androidx.test.ext:junit:1.2.1' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' -} \ No newline at end of file + testImplementation libs.junit + androidTestImplementation libs.test.ext.junit + androidTestImplementation libs.test.espresso.core +} diff --git a/modules/color-picker/build.gradle b/modules/color-picker/build.gradle index 08f38a28..750fc295 100644 --- a/modules/color-picker/build.gradle +++ b/modules/color-picker/build.gradle @@ -37,6 +37,6 @@ repositories { } dependencies { - implementation 'androidx.appcompat:appcompat:1.7.0' - implementation 'androidx.preference:preference-ktx:1.2.1' + implementation libs.appcompat + implementation libs.preference.ktx } diff --git a/modules/jieba-analysis/build.gradle b/modules/jieba-analysis/build.gradle index 0393e4ca..fea60eea 100644 --- a/modules/jieba-analysis/build.gradle +++ b/modules/jieba-analysis/build.gradle @@ -43,15 +43,12 @@ repositories { } dependencies { - // implementation "org.jetbrains.kotlin:kotlin-stdlib:${project.ext.kotlinVersion}" + implementation libs.appcompat + implementation libs.commons.lang3 - implementation 'androidx.appcompat:appcompat:1.7.0' - - implementation 'org.apache.commons:commons-lang3:3.16.0' - - testImplementation 'junit:junit:4.13.2' - androidTestImplementation 'androidx.test.ext:junit:1.2.1' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' + testImplementation libs.junit + androidTestImplementation libs.test.ext.junit + androidTestImplementation libs.test.espresso.core } tasks.withType(JavaCompile).configureEach { diff --git a/modules/material-date-time-picker/build.gradle b/modules/material-date-time-picker/build.gradle index a399d6b0..b0ebe091 100644 --- a/modules/material-date-time-picker/build.gradle +++ b/modules/material-date-time-picker/build.gradle @@ -44,14 +44,14 @@ repositories { } dependencies { - implementation 'androidx.appcompat:appcompat:1.7.0' - implementation 'androidx.recyclerview:recyclerview:1.4.0' + implementation libs.appcompat + implementation libs.recyclerview - testImplementation 'junit:junit:4.13.2' - testImplementation 'com.pholser:junit-quickcheck-core:0.9.2' - testImplementation 'com.pholser:junit-quickcheck-generators:0.9.1' + testImplementation libs.junit + testImplementation libs.junit.quickcheck.core + testImplementation libs.junit.quickcheck.generators - androidTestImplementation 'androidx.test.ext:junit:1.2.1' - androidTestImplementation 'androidx.test:runner:1.6.2' - androidTestImplementation 'androidx.test:rules:1.6.1' + androidTestImplementation libs.test.ext.junit + androidTestImplementation libs.test.runner + androidTestImplementation libs.test.rules } diff --git a/modules/material-dialogs/build.gradle b/modules/material-dialogs/build.gradle index 50fa737a..35180ece 100644 --- a/modules/material-dialogs/build.gradle +++ b/modules/material-dialogs/build.gradle @@ -39,8 +39,8 @@ repositories { } dependencies { - implementation 'com.android.support:appcompat-v7:28.0.0' - implementation 'com.android.support:support-annotations:28.0.0' - implementation 'com.android.support:recyclerview-v7:28.0.0' - implementation 'me.zhanghai.android.materialprogressbar:library:1.4.2' + implementation libs.appcompat.v7 + implementation libs.support.annotations + implementation libs.recyclerview.v7 + implementation libs.materialprogressbar } diff --git a/settings.gradle.kts b/settings.gradle.kts index 2de9e3af..fb1014f2 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -964,3 +964,15 @@ pluginManagement { } } + +dependencyResolutionManagement { + repositories { + google() + mavenCentral() + } + versionCatalogs { + create("libs") { + from(files("./gradle/libs.versions.toml")) + } + } +} \ No newline at end of file