Commit d7288b8951c280acc1f84fb562a6e51d6eb3361d

Authored by YunaiV
1 parent b78102a5

build(deps): 升级兼容依赖并交由 Spring Boot 管理 H2

对齐 Boot、Cloud 通用依赖,保留 JDK8、JDK17 和 Spring Boot 4 的平台差异。
修正依赖升级暴露的测试数据与时间精度问题,适配 Vert.x 5 API。
按运行时验证保留必要的 Bouncy Castle、OpenTelemetry 和 Kotlin 依赖约束。
yudao-dependencies/pom.xml
@@ -27,13 +27,13 @@ @@ -27,13 +27,13 @@
27 <mybatis.version>3.5.19</mybatis.version> 27 <mybatis.version>3.5.19</mybatis.version>
28 <mybatis-plus.version>3.5.17</mybatis-plus.version> 28 <mybatis-plus.version>3.5.17</mybatis-plus.version>
29 <mybatis-plus-join.version>1.5.9</mybatis-plus-join.version> 29 <mybatis-plus-join.version>1.5.9</mybatis-plus-join.version>
30 - <dynamic-datasource.version>4.5.0</dynamic-datasource.version> 30 + <dynamic-datasource.version>4.6.0</dynamic-datasource.version>
31 <easy-trans.version>3.1.8</easy-trans.version> 31 <easy-trans.version>3.1.8</easy-trans.version>
32 - <redisson.version>4.7.0</redisson.version> 32 + <redisson.version>4.8.0</redisson.version>
33 <dm8.jdbc.version>8.1.3.140</dm8.jdbc.version> 33 <dm8.jdbc.version>8.1.3.140</dm8.jdbc.version>
34 <kingbase.jdbc.version>9.0.1.jre7</kingbase.jdbc.version> 34 <kingbase.jdbc.version>9.0.1.jre7</kingbase.jdbc.version>
35 - <opengauss.jdbc.version>7.0.0-RC3-og</opengauss.jdbc.version>  
36 - <taos.version>3.9.2</taos.version> 35 + <opengauss.jdbc.version>7.0.0-og</opengauss.jdbc.version>
  36 + <taos.version>3.10.0</taos.version>
37 <iotdb.version>2.0.8</iotdb.version> <!-- TODO 特殊:暂不升级 2.0.10/2.0.11,其 TablePreparedStatement.execute 不设置 ResultSet,导致 Mapper 的 SELECT 为空、COUNT 为 null --> 37 <iotdb.version>2.0.8</iotdb.version> <!-- TODO 特殊:暂不升级 2.0.10/2.0.11,其 TablePreparedStatement.execute 不设置 ResultSet,导致 Mapper 的 SELECT 为空、COUNT 为 null -->
38 <!-- 消息队列 --> 38 <!-- 消息队列 -->
39 <rocketmq-spring.version>2.3.6</rocketmq-spring.version> 39 <rocketmq-spring.version>2.3.6</rocketmq-spring.version>
@@ -42,50 +42,49 @@ @@ -42,50 +42,49 @@
42 <!-- 监控相关 --> 42 <!-- 监控相关 -->
43 <skywalking.version>9.7.0</skywalking.version> 43 <skywalking.version>9.7.0</skywalking.version>
44 <spring-boot-admin.version>3.5.9</spring-boot-admin.version> 44 <spring-boot-admin.version>3.5.9</spring-boot-admin.version>
45 - <opentelemetry.version>1.66.0</opentelemetry.version> 45 + <opentelemetry.version>1.67.0</opentelemetry.version>
46 <!-- Test 测试相关 --> 46 <!-- Test 测试相关 -->
47 - <h2.version>2.3.232</h2.version>  
48 <podam.version>8.0.2.RELEASE</podam.version> 47 <podam.version>8.0.2.RELEASE</podam.version>
49 - <jedis-mock.version>1.1.19</jedis-mock.version> 48 + <jedis-mock.version>1.1.20</jedis-mock.version>
50 <mockito-inline.version>5.2.0</mockito-inline.version> 49 <mockito-inline.version>5.2.0</mockito-inline.version>
51 <!-- Bpm 工作流相关 --> 50 <!-- Bpm 工作流相关 -->
52 <flowable.version>8.0.0</flowable.version> 51 <flowable.version>8.0.0</flowable.version>
53 <!-- 工具类相关 --> 52 <!-- 工具类相关 -->
54 - <anji-plus-captcha.version>1.4.0</anji-plus-captcha.version> 53 + <anji-plus-captcha.version>2.0.0</anji-plus-captcha.version>
55 <jsoup.version>1.23.2</jsoup.version> 54 <jsoup.version>1.23.2</jsoup.version>
56 <sensitive-word.version>0.29.5</sensitive-word.version> 55 <sensitive-word.version>0.29.5</sensitive-word.version>
57 <pinyin4j.version>2.5.1</pinyin4j.version> 56 <pinyin4j.version>2.5.1</pinyin4j.version>
58 <lombok.version>1.18.48</lombok.version> 57 <lombok.version>1.18.48</lombok.version>
59 <mapstruct.version>1.7.0.Beta2</mapstruct.version> 58 <mapstruct.version>1.7.0.Beta2</mapstruct.version>
60 - <hutool-5.version>5.8.47</hutool-5.version> 59 + <hutool-5.version>5.8.48</hutool-5.version>
61 <hutool-6.version>6.0.0-M22</hutool-6.version> 60 <hutool-6.version>6.0.0-M22</hutool-6.version>
62 <fesod.version>2.1.0-incubating</fesod.version> 61 <fesod.version>2.1.0-incubating</fesod.version>
63 <aviator.version>5.4.4</aviator.version> 62 <aviator.version>5.4.4</aviator.version>
64 <velocity.version>2.4.1</velocity.version> 63 <velocity.version>2.4.1</velocity.version>
65 - <fastjson2.version>2.0.65</fastjson2.version>  
66 - <guava.version>33.7.1-jre</guava.version> 64 + <fastjson2.version>2.0.66</fastjson2.version>
  65 + <guava.version>33.7.2-jre</guava.version>
67 <transmittable-thread-local.version>2.14.5</transmittable-thread-local.version> 66 <transmittable-thread-local.version>2.14.5</transmittable-thread-local.version>
68 <commons-net.version>3.13.0</commons-net.version> 67 <commons-net.version>3.13.0</commons-net.version>
69 - <commons-lang3.version>3.20.0</commons-lang3.version>  
70 - <jsch.version>2.28.7</jsch.version> 68 + <commons-lang3.version>3.21.0</commons-lang3.version>
  69 + <jsch.version>2.28.8</jsch.version>
71 <tika-core.version>3.3.1</tika-core.version> 70 <tika-core.version>3.3.1</tika-core.version>
72 <ip2region.version>2.7.0</ip2region.version> 71 <ip2region.version>2.7.0</ip2region.version>
73 <bizlog-sdk.version>3.0.6</bizlog-sdk.version> 72 <bizlog-sdk.version>3.0.6</bizlog-sdk.version>
74 - <netty.version>4.2.18.Final</netty.version> 73 + <netty.version>4.2.19.Final</netty.version>
75 <mqtt.version>1.2.5</mqtt.version> 74 <mqtt.version>1.2.5</mqtt.version>
76 <vertx.version>4.5.26</vertx.version> 75 <vertx.version>4.5.26</vertx.version>
77 <okhttp.version>4.12.0</okhttp.version> 76 <okhttp.version>4.12.0</okhttp.version>
78 <californium.version>3.14.0</californium.version> 77 <californium.version>3.14.0</californium.version>
79 <j2mod.version>3.4.0</j2mod.version> 78 <j2mod.version>3.4.0</j2mod.version>
80 <!-- 三方云服务相关 --> 79 <!-- 三方云服务相关 -->
81 - <awssdk.version>2.55.5</awssdk.version> 80 + <awssdk.version>2.57.3</awssdk.version>
82 <justauth.version>1.16.7</justauth.version> 81 <justauth.version>1.16.7</justauth.version>
83 <justauth-starter.version>1.4.0</justauth-starter.version> 82 <justauth-starter.version>1.4.0</justauth-starter.version>
84 <jimureport.version>2.5.4</jimureport.version> 83 <jimureport.version>2.5.4</jimureport.version>
85 <jimubi.version>2.5.4</jimubi.version> 84 <jimubi.version>2.5.4</jimubi.version>
86 - <weixin-java.version>4.8.6-20260919.232150</weixin-java.version>  
87 - <bouncycastle.version>1.80</bouncycastle.version>  
88 - <alipay-sdk-java.version>4.40.1014.ALL</alipay-sdk-java.version> 85 + <weixin-java.version>4.8.6-20261010.094603</weixin-java.version>
  86 + <bouncycastle.version>1.85</bouncycastle.version>
  87 + <alipay-sdk-java.version>4.40.1044.ALL</alipay-sdk-java.version>
89 </properties> 88 </properties>
90 89
91 <dependencyManagement> 90 <dependencyManagement>
@@ -99,6 +98,13 @@ @@ -99,6 +98,13 @@
99 <scope>import</scope> 98 <scope>import</scope>
100 </dependency> 99 </dependency>
101 <dependency> 100 <dependency>
  101 + <groupId>io.opentelemetry</groupId>
  102 + <artifactId>opentelemetry-bom</artifactId>
  103 + <version>${opentelemetry.version}</version>
  104 + <type>pom</type>
  105 + <scope>import</scope>
  106 + </dependency>
  107 + <dependency>
102 <groupId>org.springframework.boot</groupId> 108 <groupId>org.springframework.boot</groupId>
103 <artifactId>spring-boot-dependencies</artifactId> 109 <artifactId>spring-boot-dependencies</artifactId>
104 <version>${spring.boot.version}</version> 110 <version>${spring.boot.version}</version>
@@ -278,7 +284,7 @@ @@ -278,7 +284,7 @@
278 </exclusion> 284 </exclusion>
279 <exclusion> 285 <exclusion>
280 <groupId>org.redisson</groupId> 286 <groupId>org.redisson</groupId>
281 - <!-- Redisson 4.7.x 默认依赖 redisson-spring-data-41(适配 Spring Data Redis 4.x),排除后使用下方的 spring-data-35 适配 Spring Boot 3.5 --> 287 + <!-- Redisson 4.x 默认依赖 redisson-spring-data-41(适配 Spring Data Redis 4.x),排除后使用下方的 spring-data-35 适配 Spring Boot 3.5 -->
282 <artifactId>redisson-spring-data-41</artifactId> 288 <artifactId>redisson-spring-data-41</artifactId>
283 </exclusion> 289 </exclusion>
284 </exclusions> 290 </exclusions>
@@ -439,12 +445,6 @@ @@ -439,12 +445,6 @@
439 </dependency> 445 </dependency>
440 446
441 <dependency> 447 <dependency>
442 - <groupId>com.h2database</groupId>  
443 - <artifactId>h2</artifactId>  
444 - <version>${h2.version}</version>  
445 - </dependency>  
446 -  
447 - <dependency>  
448 <groupId>com.github.fppt</groupId> <!-- 单元测试,我们采用内嵌的 Redis 数据库 --> 448 <groupId>com.github.fppt</groupId> <!-- 单元测试,我们采用内嵌的 Redis 数据库 -->
449 <artifactId>jedis-mock</artifactId> 449 <artifactId>jedis-mock</artifactId>
450 <version>${jedis-mock.version}</version> 450 <version>${jedis-mock.version}</version>
@@ -707,7 +707,7 @@ @@ -707,7 +707,7 @@
707 </exclusions> 707 </exclusions>
708 </dependency> 708 </dependency>
709 709
710 - <!-- 锁定 weixin-java 传递依赖,避免 Maven 版本范围自动升级到 1.80.2 后 Fat Jar 启动失败。 710 + <!-- 对齐 Tika 与 WxJava 的 BouncyCastle 依赖,避免 bcprov 与 bcpkix/bcutil 版本不一致。
711 反馈:https://t.zsxq.com/pCVBo --> 711 反馈:https://t.zsxq.com/pCVBo -->
712 <dependency> 712 <dependency>
713 <groupId>org.bouncycastle</groupId> 713 <groupId>org.bouncycastle</groupId>
yudao-module-infra/src/test/java/cn/iocoder/yudao/module/infra/service/codegen/CodegenServiceImplTest.java
@@ -211,7 +211,8 @@ public class CodegenServiceImplTest extends BaseDbUnitTest { @@ -211,7 +211,8 @@ public class CodegenServiceImplTest extends BaseDbUnitTest {
211 CodegenUpdateReqVO updateReqVO = randomPojo(CodegenUpdateReqVO.class, 211 CodegenUpdateReqVO updateReqVO = randomPojo(CodegenUpdateReqVO.class,
212 o -> o.getTable().setId(table.getId()) 212 o -> o.getTable().setId(table.getId())
213 .setTemplateType(CodegenTemplateTypeEnum.ONE.getType()) 213 .setTemplateType(CodegenTemplateTypeEnum.ONE.getType())
214 - .setScene(CodegenSceneEnum.ADMIN.getScene())); 214 + .setScene(CodegenSceneEnum.ADMIN.getScene())
  215 + .setModuleName("infra").setBusinessName("codegen").setClassName("CodegenTable"));
215 CodegenColumnSaveReqVO columnVO01 = randomPojo(CodegenColumnSaveReqVO.class, 216 CodegenColumnSaveReqVO columnVO01 = randomPojo(CodegenColumnSaveReqVO.class,
216 o -> o.setId(column01.getId()).setTableId(table.getId())); 217 o -> o.setId(column01.getId()).setTableId(table.getId()));
217 CodegenColumnSaveReqVO columnVO02 = randomPojo(CodegenColumnSaveReqVO.class, 218 CodegenColumnSaveReqVO columnVO02 = randomPojo(CodegenColumnSaveReqVO.class,
yudao-module-oa/src/test/java/cn/iocoder/yudao/module/oa/service/vehicle/OaVehicleReturnServiceImplTest.java
@@ -64,7 +64,8 @@ public class OaVehicleReturnServiceImplTest extends BaseDbUnitTest { @@ -64,7 +64,8 @@ public class OaVehicleReturnServiceImplTest extends BaseDbUnitTest {
64 // mock 数据:实际提前出车,不能用计划时间代替事实 64 // mock 数据:实际提前出车,不能用计划时间代替事实
65 OaVehicleApplyDO apply = randomVehicleApplyDO(); 65 OaVehicleApplyDO apply = randomVehicleApplyDO();
66 OaVehicleReturnSaveReqVO reqVO = toBean(randomVehicleReturnDO(), OaVehicleReturnSaveReqVO.class) 66 OaVehicleReturnSaveReqVO reqVO = toBean(randomVehicleReturnDO(), OaVehicleReturnSaveReqVO.class)
67 - .setActualStartTime(apply.getStartTime().minusHours(2)).setActualReturnTime(apply.getStartTime().minusHours(1)) 67 + .setActualStartTime(apply.getStartTime().minusHours(2).withNano(0))
  68 + .setActualReturnTime(apply.getStartTime().minusHours(1).withNano(0))
68 .setStartLocation("客户现场").setReason("现场支持").setPassenger("李四"); 69 .setStartLocation("客户现场").setReason("现场支持").setPassenger("李四");
69 // mock 方法 70 // mock 方法
70 when(vehicleApplyService.validateVehicleApplyExists(20L)).thenReturn(apply); 71 when(vehicleApplyService.validateVehicleApplyExists(20L)).thenReturn(apply);
yudao-module-system/src/test/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ApproveServiceImplTest.java
@@ -223,7 +223,7 @@ public class OAuth2ApproveServiceImplTest extends BaseDbUnitTest { @@ -223,7 +223,7 @@ public class OAuth2ApproveServiceImplTest extends BaseDbUnitTest {
223 String clientId = randomString(); 223 String clientId = randomString();
224 String scope = randomString(); 224 String scope = randomString();
225 Boolean approved = randomBoolean(); 225 Boolean approved = randomBoolean();
226 - LocalDateTime expireTime = LocalDateTime.ofInstant(randomDay(1, 30).toInstant(), ZoneId.systemDefault()); 226 + LocalDateTime expireTime = LocalDateTime.ofInstant(randomDay(1, 30).toInstant(), ZoneId.systemDefault()).withNano(0);
227 // mock 方法 227 // mock 方法
228 228
229 // 调用 229 // 调用
@@ -251,7 +251,7 @@ public class OAuth2ApproveServiceImplTest extends BaseDbUnitTest { @@ -251,7 +251,7 @@ public class OAuth2ApproveServiceImplTest extends BaseDbUnitTest {
251 String clientId = approve.getClientId(); 251 String clientId = approve.getClientId();
252 String scope = approve.getScope(); 252 String scope = approve.getScope();
253 Boolean approved = randomBoolean(); 253 Boolean approved = randomBoolean();
254 - LocalDateTime expireTime = LocalDateTime.ofInstant(randomDay(1, 30).toInstant(), ZoneId.systemDefault()); 254 + LocalDateTime expireTime = LocalDateTime.ofInstant(randomDay(1, 30).toInstant(), ZoneId.systemDefault()).withNano(0);
255 // mock 方法 255 // mock 方法
256 256
257 // 调用 257 // 调用
yudao-module-system/src/test/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImplTest.java
@@ -311,7 +311,7 @@ public class OAuth2TokenServiceImplTest extends BaseDbAndRedisUnitTest { @@ -311,7 +311,7 @@ public class OAuth2TokenServiceImplTest extends BaseDbAndRedisUnitTest {
311 // 测试 userType 不匹配 311 // 测试 userType 不匹配
312 oauth2AccessTokenMapper.insert(cloneIgnoreId(dbAccessToken, o -> o.setClientId("it_client"))); 312 oauth2AccessTokenMapper.insert(cloneIgnoreId(dbAccessToken, o -> o.setClientId("it_client")));
313 // 测试 expireTime 不匹配 313 // 测试 expireTime 不匹配
314 - oauth2AccessTokenMapper.insert(cloneIgnoreId(dbAccessToken, o -> o.setExpiresTime(LocalDateTimeUtil.now()))); 314 + oauth2AccessTokenMapper.insert(cloneIgnoreId(dbAccessToken, o -> o.setExpiresTime(LocalDateTimeUtil.now().minusDays(1))));
315 // 准备参数 315 // 准备参数
316 OAuth2AccessTokenPageReqVO reqVO = new OAuth2AccessTokenPageReqVO(); 316 OAuth2AccessTokenPageReqVO reqVO = new OAuth2AccessTokenPageReqVO();
317 reqVO.setUserId(10L); 317 reqVO.setUserId(10L);