| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- <?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>com.zsjz</groupId>
- <artifactId>zsjz-ai</artifactId>
- <version>1.0</version>
- <!-- 模块在父仓库内,走相对路径 -->
- <relativePath>../pom.xml</relativePath>
- </parent>
- <artifactId>ai-gateway</artifactId>
- <name>ai-gateway</name>
- <description>按用户粘性路由的转发网关(Spring Cloud Gateway WebFlux)</description>
- <properties>
- <java.version>25</java.version>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
- <spring-cloud.version>2025.0.1</spring-cloud.version>
- <sa-token.version>1.46.0</sa-token.version>
- </properties>
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-dependencies</artifactId>
- <version>${spring-cloud.version}</version>
- <type>pom</type>
- <scope>import</scope>
- </dependency>
- </dependencies>
- </dependencyManagement>
- <dependencies>
- <!-- Spring Cloud Gateway(WebFlux/Netty),负责流式转发(含 SSE / multipart / Range 下载) -->
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-gateway-server-webflux</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-webflux</artifactId>
- </dependency>
- <!-- 网关配置与用户路由持久化(PostgreSQL),阻塞调用统一放 boundedElastic -->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-jdbc</artifactId>
- </dependency>
- <dependency>
- <groupId>org.postgresql</groupId>
- <artifactId>postgresql</artifactId>
- </dependency>
- <!-- 网关自身的路由缓存(gateway:token / gateway:route:*) -->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-data-redis-reactive</artifactId>
- </dependency>
- <!-- sa-token:只用来解析 token -> loginId(共享后端同一个 Redis)。
- 版本、Redis 地址、sa-token 配置必须与 ai-server 完全一致,
- 否则 token 键位对不上会全部解析失败。 -->
- <dependency>
- <groupId>cn.dev33</groupId>
- <artifactId>sa-token-reactor-spring-boot3-starter</artifactId>
- <version>${sa-token.version}</version>
- </dependency>
- <dependency>
- <groupId>cn.dev33</groupId>
- <artifactId>sa-token-redis-jackson</artifactId>
- <version>${sa-token.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-validation</artifactId>
- </dependency>
- <dependency>
- <groupId>org.projectlombok</groupId>
- <artifactId>lombok</artifactId>
- <optional>true</optional>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-test</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>io.projectreactor</groupId>
- <artifactId>reactor-test</artifactId>
- <scope>test</scope>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-resources-plugin</artifactId>
- <executions>
- <!-- DDL 只维护一份:把仓库根的 sql/gateway.sql 复制成 classpath:db/gateway.sql,
- 供 spring.sql.init 启动时建表(幂等,可重复执行) -->
- <execution>
- <id>copy-gateway-sql</id>
- <phase>generate-resources</phase>
- <goals>
- <goal>copy-resources</goal>
- </goals>
- <configuration>
- <outputDirectory>${project.build.outputDirectory}</outputDirectory>
- <resources>
- <resource>
- <directory>${project.parent.basedir}/sql</directory>
- <includes>
- <include>gateway.sql</include>
- </includes>
- <targetPath>db</targetPath>
- </resource>
- </resources>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <annotationProcessorPaths>
- <path>
- <groupId>org.projectlombok</groupId>
- <artifactId>lombok</artifactId>
- </path>
- </annotationProcessorPaths>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </project>
|