Files
dax-pay/pom.xml
daxpay 78fa28ae24 refactor(artemis): 移除 embedded 模式,恢复 netty 4.2 修复 Linux Lettuce 崩溃
根 pom 删 netty.version=4.1.135 覆盖,恢复 Boot 4.1 默认 netty 4.2.15;
common-artemis 删 artemis-jms-server 依赖(fat jar 不再含 EmbeddedActiveMQ,
Spring Boot @ConditionalOnClass 自动跳过 embedded 装配);
application-dev/prod.yml 删 spring.artemis.embedded 段,mode 固定 native。

根因:netty 4.1 降级曾为修 JDK25+Artemis embedded 的 CleanerJava25 崩溃,
但 Lettuce 7.5.2 针对 netty 4.2 编译,Linux epoll 路径引用
MultiThreadIoEventLoopGroup(4.2 新基类)致 NoClassDefFoundError;
移除 embedded 消除 CleanerJava25 触发点后 netty 恢复 4.2,Lettuce 正常。
2026-08-11 23:04:45 +08:00

96 lines
4.2 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>4.1.0</version>
<relativePath/>
</parent>
<groupId>cn.daxpay.open</groupId>
<artifactId>daxpay</artifactId>
<version>4.0.0-beta3</version>
<packaging>pom</packaging>
<name>dax-pay-open</name>
<description>DaxPay开源版支付系统</description>
<!-- 开源协议GNU LGPL v3.0 或更高版本 -->
<licenses>
<license>
<name>GNU Lesser General Public License v3.0 or later</name>
<url>https://www.gnu.org/licenses/lgpl-3.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<modules>
<module>daxpay-platform</module>
<module>daxpay-payment</module>
<module>daxpay-channel</module>
<module>daxpay-start</module>
<module>daxpay-plugin</module>
<!-- 功能演示模块(可独立装配;需隔离时移除 daxpay-start 中对应依赖即可) -->
<module>daxpay-demo</module>
</modules>
<properties>
<java.version>25</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 三方库版本集中管理(子模块通过继承获取) -->
<lombok.version>1.18.46</lombok.version>
<mapstruct.version>1.6.3</mapstruct.version>
<springdoc.version>3.0.3</springdoc.version>
<hutool.version>5.8.46</hutool.version>
<bouncycastle.version>1.84</bouncycastle.version>
<guava.version>33.6.0-jre</guava.version>
<mybatis-plus.version>3.5.16</mybatis-plus.version>
<mybatis-plus-join.version>1.5.7</mybatis-plus-join.version>
<lock4j.version>2.2.7</lock4j.version>
<shedlock.version>6.3.1</shedlock.version>
<aws-sdk.version>2.46.15</aws-sdk.version>
<sa-token.version>1.45.0</sa-token.version>
<caffeine.version>3.2.4</caffeine.version>
<ip2region.version>3.3.7</ip2region.version>
<wxjava.version>4.8.4.B</wxjava.version>
<commonmark.version>0.24.0</commonmark.version>
<!-- Netty用 Boot 4.1 BOM 默认4.2.x不覆盖。
曾为 embedded Artemis 降到 4.1.135netty 4.2 的 CleanerJava25 在 JDK25 上对 NIO journal
direct ByteBuffer 抛 UnsupportedOperationException → AMQ224000但 4.1 缺少
io.netty.channel.MultiThreadIoEventLoopGroupnetty 4.2 重构后的新基类),导致 Lettuce 7.x
Boot 4.1 自带 Redis 客户端)运行时 NoClassDefFoundError —— 走 Redis 的路径(如 shedlock
定时任务抢锁全炸。embedded 模式与 Lettuce 在 JDK25 不可共存,已弃用回 native 独立容器。
若未来重启 embedded须先确认 Artemis 兼容 netty 4.2。 -->
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>
</project>