封装 Redis Streams 收发,零业务依赖。含自动装配、发送模板、监听容器、 autoclaim 崩溃恢复+死信淘汰、stream 定时裁剪、gzip 编解码、环境隔离。 本次随提交的改进: - per-handler 重试次数:getMaxRetryTimes() 覆写生效,全局 redis-stream.max-retry 兜底 - 死信回调传入反序列化后的业务消息(saveExceptionFromFields) - pom 升级 maven-surefire-plugin 至 2.22.2,使 JUnit 5 测试真正执行 - 集成测试连接信息改为 -D 注入(默认 localhost:6379),凭据不入代码 - lombok 改为 optional,不污染下游依赖 - 新增 README 使用文档 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
130 lines
5.3 KiB
XML
130 lines
5.3 KiB
XML
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||
<modelVersion>4.0.0</modelVersion>
|
||
<groupId>com.njcn</groupId>
|
||
<artifactId>redis-stream-springboot-starter</artifactId>
|
||
<version>1.0.0-SNAPSHOT</version>
|
||
<packaging>jar</packaging>
|
||
<name>redis stream中间件二次开发sdk</name>
|
||
<description>封装 Redis Streams 收发,对标 rocket-mq-springboot-starter,零业务依赖</description>
|
||
|
||
<distributionManagement>
|
||
<repository>
|
||
<id>nexus-releases</id>
|
||
<name>Nexus Release Repository</name>
|
||
<url>http://192.168.1.22:8001/nexus/content/repositories/releases/</url>
|
||
</repository>
|
||
<snapshotRepository>
|
||
<id>nexus-snapshots</id>
|
||
<name>Nexus Snapshot Repository</name>
|
||
<url>http://192.168.1.22:8001/nexus/content/repositories/snapshots/</url>
|
||
</snapshotRepository>
|
||
</distributionManagement>
|
||
|
||
<properties>
|
||
<java.version>1.8</java.version>
|
||
<maven.compiler.source>8</maven.compiler.source>
|
||
<maven.compiler.target>8</maven.compiler.target>
|
||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||
<springboot.version>2.3.12.RELEASE</springboot.version>
|
||
<!--
|
||
autoconfigure 与 SB 同版本(不沿用 rocket starter 的 2.0.0.RELEASE):
|
||
2.0.0 会经 Maven 最近优先把 spring-context 降到 5.0.x,而 SmartLifecycle.stop(Runnable)/
|
||
isAutoStartup() 在 5.2 才是 default 方法,C7/C8/C9 容器实现 SmartLifecycle 会编译失败。
|
||
-->
|
||
<autoconfigure.version>2.3.12.RELEASE</autoconfigure.version>
|
||
<fastjson.version>1.2.83</fastjson.version>
|
||
<hutool.version>5.7.9</hutool.version>
|
||
<lombok.version>1.18.18</lombok.version>
|
||
</properties>
|
||
|
||
<dependencies>
|
||
<!--Redis(含 spring-data-redis 2.3.x + lettuce)-->
|
||
<dependency>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-starter-data-redis</artifactId>
|
||
<version>${springboot.version}</version>
|
||
</dependency>
|
||
<!--自动装配-->
|
||
<dependency>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-autoconfigure</artifactId>
|
||
<version>${autoconfigure.version}</version>
|
||
</dependency>
|
||
<!--避免idea后端配置类报红-->
|
||
<dependency>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-configuration-processor</artifactId>
|
||
<optional>true</optional>
|
||
<version>${springboot.version}</version>
|
||
</dependency>
|
||
<!--JSON-->
|
||
<dependency>
|
||
<groupId>com.alibaba</groupId>
|
||
<artifactId>fastjson</artifactId>
|
||
<version>${fastjson.version}</version>
|
||
</dependency>
|
||
<!--java工具包(雪花id等)-->
|
||
<dependency>
|
||
<groupId>cn.hutool</groupId>
|
||
<artifactId>hutool-all</artifactId>
|
||
<version>${hutool.version}</version>
|
||
</dependency>
|
||
<!--java简化开发工具(optional:仅编译期需要,不传递给下游消费方)-->
|
||
<dependency>
|
||
<groupId>org.projectlombok</groupId>
|
||
<artifactId>lombok</artifactId>
|
||
<version>${lombok.version}</version>
|
||
<optional>true</optional>
|
||
</dependency>
|
||
<!--测试-->
|
||
<dependency>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-starter-test</artifactId>
|
||
<version>${springboot.version}</version>
|
||
<scope>test</scope>
|
||
</dependency>
|
||
</dependencies>
|
||
|
||
<build>
|
||
<plugins>
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-compiler-plugin</artifactId>
|
||
<version>3.8.1</version>
|
||
<configuration>
|
||
<source>1.8</source>
|
||
<target>1.8</target>
|
||
<encoding>UTF-8</encoding>
|
||
</configuration>
|
||
</plugin>
|
||
<!--
|
||
默认 super-POM 绑定的 surefire 2.12.4 不识别 JUnit 5(Jupiter),会导致 Tests run: 0(静默假绿)。
|
||
本项目未使用 spring-boot-starter-parent,故显式升到 2.22.2 以驱动 JUnit Platform。
|
||
-->
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-surefire-plugin</artifactId>
|
||
<version>2.22.2</version>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-source-plugin</artifactId>
|
||
<version>2.2.1</version>
|
||
<executions>
|
||
<execution>
|
||
<id>attach-sources</id>
|
||
<goals>
|
||
<goal>jar-no-fork</goal>
|
||
</goals>
|
||
</execution>
|
||
</executions>
|
||
</plugin>
|
||
</plugins>
|
||
</build>
|
||
|
||
</project>
|