Skip to content

Commit cc4db4d

Browse files
committed
[version-catalog] 依赖版本升级与功能增强
- 升级多个核心依赖版本 - Spotless: 7.1.0 7.2.1 - Flyway: 11.10.3 11.10.4 - Netty: 4.2.1.Final 4.2.3.Final - Log4j: 2.24.3 2.25.1 - JUnit Jupiter: 6.0.0-M1 6.0.0-M2 - Spring Modulith: 1.4.1 2.0.0-M1 - Playwright: 1.53.0 1.54.0 - SQLite JDBC: 3.50.2.0 3.50.3.0 - 新增火山引擎 TOS Java SDK 依赖 - 增强 version-catalog 模块依赖更新检查功能 - 配置 gradle-versions-plugin 自动过滤不稳定版本 - 支持多格式报告输出 (HTML/JSON/XML/TXT) - 添加便捷任务别名 checkUpdates 和 updateReport - 新增 version-catalog 模块完整文档说明
1 parent 5776b52 commit cc4db4d

3 files changed

Lines changed: 155 additions & 18 deletions

File tree

gradle/libs.versions.toml

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ cn-dev33-sa-token-redis = "1.44.0"
44
cn-hutool = "5.8.39"
55
com-alibaba-cloud = "2023.0.3.3"
66
com-baomidou-mybatis-plus = "3.5.12"
7-
com-diffplug-spotless = "7.1.0"
7+
com-diffplug-spotless = "7.2.1"
88
com-fasterxml-jackson = "2.19.2"
9-
com-flywaydb-flyway = "11.10.3"
9+
com-flywaydb-flyway = "11.10.4"
1010
com-github-tschuchortdev-kotlin-compile-testing = "1.6.0"
1111
com-google-devtools-ksp = "2.2.0-2.0.2"
1212
com-mapstruct = "1.6.3"
@@ -19,12 +19,12 @@ com-yomahub-liteflow = "2.13.2.1"
1919
dev-langchain4j = "1.1.0-beta7"
2020
dev-langchain4j-community = "1.1.0-beta7"
2121
group = "io.github.truenine"
22-
io-netty = "4.2.1.Final"
22+
io-netty = "4.2.3.Final"
2323
java = "24"
2424
net-sf-sevenzipjbinding = "16.02-2.01"
2525
nl-littlerobots-version-catalog-updat-gradle-plugin = "1.0.0"
2626
org-apache-commons-exec = "1.5.0"
27-
org-apache-logging-log4j = "2.24.3"
27+
org-apache-logging-log4j = "2.25.1"
2828
org-assertj = "4.0.0-M1"
2929
org-awaitility = "4.3.0"
3030
org-babyfish-jimmer = "0.9.100"
@@ -36,7 +36,7 @@ org-jetbrains-kotlinx-coroutines = "1.10.2"
3636
org-jetbrains-kotlinx-datetime = "0.7.1-0.6.x-compat"
3737
org-jetbrains-kotlinx-io = "0.8.0"
3838
org-jetbrains-kotlinx-serialization = "1.9.0"
39-
org-junit-jupiter = "6.0.0-M1"
39+
org-junit-jupiter = "6.0.0-M2"
4040
org-liquibase = "4.33.0"
4141
org-slf4j = "2.1.0-alpha1"
4242
org-springframework-ai = "1.0.0"
@@ -46,7 +46,7 @@ org-springframework-cloud = "2025.0.0"
4646
org-springframework-data = "3.5.0-M1"
4747
org-springframework-framework = "6.2.6"
4848
org-springframework-integration = "6.5.0"
49-
org-springframework-modulith = "1.4.1"
49+
org-springframework-modulith = "2.0.0-M1"
5050
org-springframework-security = "6.5.1"
5151
org-testcontainers = "1.21.3"
5252
org-testng = "7.11.0"
@@ -99,7 +99,7 @@ com-h2database-h2 = "com.h2database:h2:2.3.232"
9999
com-hikvision-ga-artemis-http-client = "com.hikvision.ga:artemis-http-client:1.1.3"
100100
com-hikvision-ga-opensource = "com.hikvision.ga:opensource:0.0.3"
101101
com-huaweicloud-esdk-obs-java = "com.huaweicloud:esdk-obs-java:3.25.5"
102-
com-microsoft-playwright-playwright = "com.microsoft.playwright:playwright:1.53.0"
102+
com-microsoft-playwright-playwright = "com.microsoft.playwright:playwright:1.54.0"
103103
com-mysql-mysql-connector-j = "com.mysql:mysql-connector-j:9.3.0"
104104
com-querydsl-querydsl-apt = { module = "com.querydsl:querydsl-apt", version.ref = "com-querydsl" }
105105
com-querydsl-querydsl-core = { module = "com.querydsl:querydsl-core", version.ref = "com-querydsl" }
@@ -113,6 +113,7 @@ com-squareup-okio-okio-jvm = { module = "com.squareup.okio:okio-jvm", version.re
113113
com-squareup-retrofit2-retrofit = "com.squareup.retrofit2:retrofit:3.0.0"
114114
com-tencentcloudapi-tencentcloud-sdk-java-sms = "com.tencentcloudapi:tencentcloud-sdk-java-sms:3.1.1281"
115115
com-vanniktech-maven-publish-com-vanniktech-maven-publish-gradle-plugin = { module = "com.vanniktech.maven.publish:com.vanniktech.maven.publish.gradle.plugin", version.ref = "com-vanniktech-maven-publish" }
116+
com-volcengine-ve-tos-java-sdk = "com.volcengine:ve-tos-java-sdk:2.9.4"
116117
com-xuxueli-xxl-job-core = { module = "com.xuxueli:xxl-job-core", version.ref = "com-xuxueli-xxl-job" }
117118
com-yomahub-liteflow-spring-boot-starter = { module = "com.yomahub:liteflow-spring-boot-starter", version.ref = "com-yomahub-liteflow" }
118119
dev-langchain4j-langchain4j = "dev.langchain4j:langchain4j:1.1.0"
@@ -128,6 +129,8 @@ dev-langchain4j-langchain4j-reactor = { module = "dev.langchain4j:langchain4j-re
128129
dev-langchain4j-langchain4j-spring-boot-starter = { module = "dev.langchain4j:langchain4j-spring-boot-starter", version.ref = "dev-langchain4j" }
129130
dev-langchain4j-langchain4j-zhipu-ai = "dev.langchain4j:langchain4j-zhipu-ai:0.36.2"
130131
io-github-bonigarcia-webdrivermanager = "io.github.bonigarcia:webdrivermanager:6.2.0"
132+
io-github-truenine-composeserver-ai-langchain4j = { module = "io.github.truenine:composeserver-ai-langchain4j", version.ref = "project" }
133+
io-github-truenine-composeserver-ai-shared = { module = "io.github.truenine:composeserver-ai-shared", version.ref = "project" }
131134
io-github-truenine-composeserver-cacheable = { module = "io.github.truenine:composeserver-cacheable", version.ref = "project" }
132135
io-github-truenine-composeserver-data-crawler = { module = "io.github.truenine:composeserver-data-crawler", version.ref = "project" }
133136
io-github-truenine-composeserver-data-extract = { module = "io.github.truenine:composeserver-data-extract", version.ref = "project" }
@@ -138,11 +141,9 @@ io-github-truenine-composeserver-depend-servlet = { module = "io.github.truenine
138141
io-github-truenine-composeserver-depend-springdoc-openapi = { module = "io.github.truenine:composeserver-depend-springdoc-openapi", version.ref = "project" }
139142
io-github-truenine-composeserver-depend-xxl-job = { module = "io.github.truenine:composeserver-depend-xxl-job", version.ref = "project" }
140143
io-github-truenine-composeserver-gradle-plugin = { module = "io.github.truenine:composeserver-gradle-plugin", version.ref = "project" }
144+
io-github-truenine-composeserver-ksp-meta = { module = "io.github.truenine:composeserver-ksp-meta", version.ref = "project" }
141145
io-github-truenine-composeserver-ksp-plugin = { module = "io.github.truenine:composeserver-ksp-plugin", version.ref = "project" }
142146
io-github-truenine-composeserver-ksp-shared = { module = "io.github.truenine:composeserver-ksp-shared", version.ref = "project" }
143-
io-github-truenine-composeserver-ai-langchain4j = { module = "io.github.truenine:composeserver-ai-langchain4j", version.ref = "project" }
144-
io-github-truenine-composeserver-ai-shared = { module = "io.github.truenine:composeserver-ai-shared", version.ref = "project" }
145-
io-github-truenine-composeserver-ksp-meta = { module = "io.github.truenine:composeserver-ksp-meta", version.ref = "project" }
146147
io-github-truenine-composeserver-oss-aliyun-oss = { module = "io.github.truenine:composeserver-oss-aliyun-oss", version.ref = "project" }
147148
io-github-truenine-composeserver-oss-huawei-obs = { module = "io.github.truenine:composeserver-oss-huawei-obs", version.ref = "project" }
148149
io-github-truenine-composeserver-oss-minio = { module = "io.github.truenine:composeserver-oss-minio", version.ref = "project" }
@@ -308,7 +309,7 @@ org-testcontainers-postgresql = { module = "org.testcontainers:postgresql", vers
308309
org-testcontainers-testcontainers = { module = "org.testcontainers:testcontainers", version.ref = "org-testcontainers" }
309310
org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" }
310311
org-testng-testng = { module = "org.testng:testng", version.ref = "org-testng" }
311-
org-xerial-sqlite-jdbc = "org.xerial:sqlite-jdbc:3.50.2.0"
312+
org-xerial-sqlite-jdbc = "org.xerial:sqlite-jdbc:3.50.3.0"
312313
p6spy-p6spy = "p6spy:p6spy:3.9.1"
313314

314315
[plugins]

version-catalog/README.md

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
# Version Catalog 模块
2+
3+
这个模块负责管理和发布项目生态系统中的依赖版本,提供集中化的版本管理和依赖更新检查功能。
4+
5+
## 功能特性
6+
7+
- 🔍 **依赖更新检查**: 使用 gradle-versions-plugin 检查所有依赖的最新版本
8+
- 📊 **多格式报告**: 生成 HTML、JSON、XML、TXT 四种格式的报告
9+
- 🚫 **版本过滤**: 自动过滤不稳定版本(alpha、beta、dev、snapshot)
10+
- 📦 **版本目录**: 统一管理项目中所有模块的依赖版本
11+
12+
## 可用任务
13+
14+
### 主要任务
15+
16+
```bash
17+
# 检查依赖更新并生成报告
18+
./gradlew :version-catalog:dependencyUpdates
19+
20+
# 检查依赖更新 (别名)
21+
./gradlew :version-catalog:checkUpdates
22+
23+
# 生成依赖更新报告并显示文件路径
24+
./gradlew :version-catalog:updateReport
25+
```
26+
27+
### 报告文件位置
28+
29+
执行任务后,报告文件将生成在 `version-catalog/build/dependencyUpdates/` 目录下:
30+
31+
- `report.html` - HTML 格式报告(推荐查看)
32+
- `report.json` - JSON 格式报告(程序化处理)
33+
- `report.xml` - XML 格式报告
34+
- `report.txt` - 纯文本格式报告
35+
36+
## 配置说明
37+
38+
### 版本过滤规则
39+
40+
插件会自动过滤以下关键词的版本:
41+
- `alpha` - Alpha 版本
42+
- `beta` - Beta 版本
43+
- `dev` - 开发版本
44+
- `snapshot` - 快照版本
45+
46+
### 输出格式
47+
48+
支持同时生成多种格式的报告:
49+
- **HTML**: 适合人工查看,包含完整的依赖信息和链接
50+
- **JSON**: 适合程序化处理和 CI/CD 集成
51+
- **XML**: 适合与其他工具集成
52+
- **TXT**: 纯文本格式,适合命令行查看
53+
54+
## 使用示例
55+
56+
### 1. 检查项目依赖更新
57+
58+
```bash
59+
./gradlew :version-catalog:updateReport
60+
```
61+
62+
输出示例:
63+
```
64+
依赖更新报告已生成:
65+
- HTML: C:\project\compose-server\version-catalog\build\dependencyUpdates\report.html
66+
- JSON: C:\project\compose-server\version-catalog\build\dependencyUpdates\report.json
67+
- XML: C:\project\compose-server\version-catalog\build\dependencyUpdates\report.xml
68+
- TXT: C:\project\compose-server\version-catalog\build\dependencyUpdates\report.txt
69+
```
70+
71+
### 2. 在 CI/CD 中使用
72+
73+
```bash
74+
# 检查依赖更新
75+
./gradlew :version-catalog:dependencyUpdates
76+
77+
# 解析 JSON 报告进行自动化处理
78+
cat version-catalog/build/dependencyUpdates/report.json | jq '.outdated.dependencies'
79+
```
80+
81+
## 相关链接
82+
83+
- [gradle-versions-plugin 官方文档](https://github.com/ben-manes/gradle-versions-plugin)
84+
- [Gradle Version Catalogs 文档](https://docs.gradle.org/current/userguide/platforms.html)

version-catalog/build.gradle.kts

Lines changed: 59 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask
12
import kotlin.jvm.optionals.getOrNull
23

34
plugins {
@@ -32,27 +33,78 @@ dependencies {
3233
}
3334
}
3435

35-
val skipGroups = listOf("org.jetbrains.kotlin", "org.springframework", "com.google.devtools")
36+
val nonStableKeywords = listOf(
37+
"alpha",
38+
"beta",
39+
"dev",
40+
"-rc",
41+
"snapshot"
42+
)
43+
44+
val ignoreGroups = listOf(
45+
"dev.langchain4j",
46+
"io.projectreactor.kotlin"
47+
)
3648

3749
fun isNonStable(version: ModuleComponentIdentifier): Boolean {
38-
if (skipGroups.any { version.group.startsWith(it) }) {
39-
return false
40-
}
41-
val nonStableKeywords = listOf("alpha", "beta", "rc", "cr", "m", "eap", "dev", "snapshot")
4250
return nonStableKeywords.any { version.version.contains(it, true) }
4351
}
4452

4553
// https://github.com/ben-manes/gradle-versions-plugin
46-
/*tasks.withType<DependencyUpdatesTask> {
54+
tasks.withType<DependencyUpdatesTask> {
55+
// 拒绝不稳定版本
4756
rejectVersionIf {
57+
if (ignoreGroups.any { group.contains(it, true) }) {
58+
return@rejectVersionIf true
59+
}
4860
isNonStable(candidate)
4961
}
50-
}*/
62+
63+
// 检查构建脚本依赖
64+
checkBuildEnvironmentConstraints = true
65+
66+
// 输出格式配置
67+
outputFormatter = "json,xml,html,plain"
68+
69+
// 输出目录
70+
outputDir = "build/dependencyUpdates"
71+
72+
// 报告文件名
73+
reportfileName = "report"
74+
}
75+
76+
// 创建任务别名,方便使用
77+
tasks.register("checkUpdates") {
78+
dependsOn("dependencyUpdates")
79+
group = "verification"
80+
description = "检查依赖更新 (dependencyUpdates 任务的别名)"
81+
}
82+
83+
tasks.register("updateReport") {
84+
dependsOn("dependencyUpdates")
85+
group = "reporting"
86+
description = "生成依赖更新报告"
87+
doLast {
88+
val reportDir = file("build/dependencyUpdates")
89+
if (reportDir.exists()) {
90+
println("依赖更新报告已生成:")
91+
println(" - HTML: ${reportDir.resolve("report.html").absolutePath}")
92+
println(" - JSON: ${reportDir.resolve("report.json").absolutePath}")
93+
println(" - XML: ${reportDir.resolve("report.xml").absolutePath}")
94+
println(" - TXT: ${reportDir.resolve("report.txt").absolutePath}")
95+
}
96+
}
97+
}
5198

5299
description =
53100
"""
54101
Version catalog module for managing and publishing dependency versions across the project ecosystem.
55102
Provides centralized version management and dependency update capabilities with automated version checking.
103+
104+
Available tasks:
105+
- dependencyUpdates: 检查依赖更新并生成报告
106+
- checkUpdates: dependencyUpdates 的别名
107+
- updateReport: 生成依赖更新报告并显示文件路径
56108
"""
57109
.trimIndent()
58110

0 commit comments

Comments
 (0)