pom.xml 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <parent>
  6. <groupId>com.zsjz</groupId>
  7. <artifactId>zsjz-ai</artifactId>
  8. <version>1.0</version>
  9. <!-- 模块在父仓库内,走相对路径 -->
  10. <relativePath>../pom.xml</relativePath>
  11. </parent>
  12. <artifactId>ai-gateway</artifactId>
  13. <name>ai-gateway</name>
  14. <description>按用户粘性路由的转发网关(Spring Cloud Gateway WebFlux)</description>
  15. <properties>
  16. <java.version>25</java.version>
  17. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  18. <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  19. <spring-cloud.version>2025.0.1</spring-cloud.version>
  20. <sa-token.version>1.46.0</sa-token.version>
  21. </properties>
  22. <dependencyManagement>
  23. <dependencies>
  24. <dependency>
  25. <groupId>org.springframework.cloud</groupId>
  26. <artifactId>spring-cloud-dependencies</artifactId>
  27. <version>${spring-cloud.version}</version>
  28. <type>pom</type>
  29. <scope>import</scope>
  30. </dependency>
  31. </dependencies>
  32. </dependencyManagement>
  33. <dependencies>
  34. <!-- Spring Cloud Gateway(WebFlux/Netty),负责流式转发(含 SSE / multipart / Range 下载) -->
  35. <dependency>
  36. <groupId>org.springframework.cloud</groupId>
  37. <artifactId>spring-cloud-starter-gateway-server-webflux</artifactId>
  38. </dependency>
  39. <dependency>
  40. <groupId>org.springframework.boot</groupId>
  41. <artifactId>spring-boot-starter-webflux</artifactId>
  42. </dependency>
  43. <!-- 网关配置与用户路由持久化(PostgreSQL),阻塞调用统一放 boundedElastic -->
  44. <dependency>
  45. <groupId>org.springframework.boot</groupId>
  46. <artifactId>spring-boot-starter-jdbc</artifactId>
  47. </dependency>
  48. <dependency>
  49. <groupId>org.postgresql</groupId>
  50. <artifactId>postgresql</artifactId>
  51. </dependency>
  52. <!-- 网关自身的路由缓存(gateway:token / gateway:route:*) -->
  53. <dependency>
  54. <groupId>org.springframework.boot</groupId>
  55. <artifactId>spring-boot-starter-data-redis-reactive</artifactId>
  56. </dependency>
  57. <!-- sa-token:只用来解析 token -> loginId(共享后端同一个 Redis)。
  58. 版本、Redis 地址、sa-token 配置必须与 ai-server 完全一致,
  59. 否则 token 键位对不上会全部解析失败。 -->
  60. <dependency>
  61. <groupId>cn.dev33</groupId>
  62. <artifactId>sa-token-reactor-spring-boot3-starter</artifactId>
  63. <version>${sa-token.version}</version>
  64. </dependency>
  65. <dependency>
  66. <groupId>cn.dev33</groupId>
  67. <artifactId>sa-token-redis-jackson</artifactId>
  68. <version>${sa-token.version}</version>
  69. </dependency>
  70. <dependency>
  71. <groupId>org.springframework.boot</groupId>
  72. <artifactId>spring-boot-starter-validation</artifactId>
  73. </dependency>
  74. <dependency>
  75. <groupId>org.projectlombok</groupId>
  76. <artifactId>lombok</artifactId>
  77. <optional>true</optional>
  78. </dependency>
  79. <dependency>
  80. <groupId>org.springframework.boot</groupId>
  81. <artifactId>spring-boot-starter-test</artifactId>
  82. <scope>test</scope>
  83. </dependency>
  84. <dependency>
  85. <groupId>io.projectreactor</groupId>
  86. <artifactId>reactor-test</artifactId>
  87. <scope>test</scope>
  88. </dependency>
  89. </dependencies>
  90. <build>
  91. <plugins>
  92. <plugin>
  93. <groupId>org.springframework.boot</groupId>
  94. <artifactId>spring-boot-maven-plugin</artifactId>
  95. </plugin>
  96. <plugin>
  97. <groupId>org.apache.maven.plugins</groupId>
  98. <artifactId>maven-resources-plugin</artifactId>
  99. <executions>
  100. <!-- DDL 只维护一份:把仓库根的 sql/gateway.sql 复制成 classpath:db/gateway.sql,
  101. 供 spring.sql.init 启动时建表(幂等,可重复执行) -->
  102. <execution>
  103. <id>copy-gateway-sql</id>
  104. <phase>generate-resources</phase>
  105. <goals>
  106. <goal>copy-resources</goal>
  107. </goals>
  108. <configuration>
  109. <outputDirectory>${project.build.outputDirectory}</outputDirectory>
  110. <resources>
  111. <resource>
  112. <directory>${project.parent.basedir}/sql</directory>
  113. <includes>
  114. <include>gateway.sql</include>
  115. </includes>
  116. <targetPath>db</targetPath>
  117. </resource>
  118. </resources>
  119. </configuration>
  120. </execution>
  121. </executions>
  122. </plugin>
  123. <plugin>
  124. <groupId>org.apache.maven.plugins</groupId>
  125. <artifactId>maven-compiler-plugin</artifactId>
  126. <configuration>
  127. <annotationProcessorPaths>
  128. <path>
  129. <groupId>org.projectlombok</groupId>
  130. <artifactId>lombok</artifactId>
  131. </path>
  132. </annotationProcessorPaths>
  133. </configuration>
  134. </plugin>
  135. </plugins>
  136. </build>
  137. </project>