pom.xml 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. 观澜 · 后端(Java + Spring Boot + Swagger)—— 用户令 2026-09-29:后端完全用 Java + Spring Boot + Swagger 实现,
  4. 与算法模块经接口交互,行为与重构前一致(对拍基准:app_backEnd/app_backEnd_guanlan/contract/http_api_v1.json)。
  5. 工具链口径(本机实测):JDK 1.8.0_202(D:\Program Files\Java\jdk1.8.0_202)+ Maven 3.8.9;
  6. Maven Central 不可达,但用户级本地仓已含所需构件,故**离线编译**:
  7. mvn -o -Dmaven.repo.local=C:\Users\86189\.m2\repository package
  8. -->
  9. <project xmlns="http://maven.apache.org/POM/4.0.0"
  10. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  11. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  12. <modelVersion>4.0.0</modelVersion>
  13. <parent>
  14. <groupId>org.springframework.boot</groupId>
  15. <artifactId>spring-boot-starter-parent</artifactId>
  16. <version>2.7.18</version>
  17. <relativePath/>
  18. </parent>
  19. <groupId>com.guanlan</groupId>
  20. <artifactId>guanlan-backend</artifactId>
  21. <version>0.1.0</version>
  22. <name>guanlan-backend</name>
  23. <description>观澜 v2 后端(Java 8 + Spring Boot 2.7 + Swagger + MyBatis-Plus 预留)</description>
  24. <properties>
  25. <java.version>1.8</java.version>
  26. <maven.compiler.source>1.8</maven.compiler.source>
  27. <maven.compiler.target>1.8</maven.compiler.target>
  28. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  29. <springfox.version>3.0.0</springfox.version>
  30. <spring-cloud.version>2021.0.9</spring-cloud.version>
  31. <spring-cloud-alibaba.version>2021.0.5.0</spring-cloud-alibaba.version>
  32. </properties>
  33. <dependencies>
  34. <dependency>
  35. <groupId>org.springframework.boot</groupId>
  36. <artifactId>spring-boot-starter-web</artifactId>
  37. </dependency>
  38. <!-- Swagger:springfox 3(本地仓已有 springfox-boot-starter 3.0.0,含 swagger2 + swagger-ui) -->
  39. <dependency>
  40. <groupId>io.springfox</groupId>
  41. <artifactId>springfox-boot-starter</artifactId>
  42. <version>${springfox.version}</version>
  43. </dependency>
  44. <!--
  45. 离线实逮(2026-09-29):springfox 3 的 swagger2 映射器在运行期要 `org.mapstruct.factory.Mappers`,
  46. 但它在 springfox 的 POM 里是 provided/未传递 ⇒ 直接跑会
  47. `NoClassDefFoundError: org/mapstruct/factory/Mappers`(启动即失败)。显式补上(本机仓有 1.3.1.Final)。
  48. -->
  49. <dependency>
  50. <groupId>org.mapstruct</groupId>
  51. <artifactId>mapstruct</artifactId>
  52. <version>1.3.1.Final</version>
  53. </dependency>
  54. <dependency>
  55. <groupId>org.springframework.boot</groupId>
  56. <artifactId>spring-boot-starter-test</artifactId>
  57. <scope>test</scope>
  58. </dependency>
  59. <!--
  60. ★2026-09-29 用户令:把这几样补齐(本机仓原先没有;Maven Central/阿里云镜像**可达**,
  61. 用 settings-online.xml 下到用户本地仓,之后仍可离线编译):
  62. · OAuth2 + JWT —— Boot 2.7 线用 resource-server + jose(spring-cloud-starter-oauth2 已停更)
  63. · Spring Security —— 鉴权基础设施
  64. · Nacos(Spring Cloud Alibaba)—— 服务发现/配置;单体模式不启 Nacos 也能跑
  65. ★Spring Cloud **Gateway 不放在本工程**(实逮):Gateway 跑 WebFlux,与本工程的 MVC(Tomcat)+springfox
  66. 同进程不兼容(官方二选一)⇒ 网关独立成 ../backend-gateway 工程。
  67. -->
  68. <dependency>
  69. <groupId>org.springframework.boot</groupId>
  70. <artifactId>spring-boot-starter-security</artifactId>
  71. </dependency>
  72. <dependency>
  73. <groupId>org.springframework.boot</groupId>
  74. <artifactId>spring-boot-starter-oauth2-resource-server</artifactId>
  75. </dependency>
  76. <dependency>
  77. <groupId>org.springframework.security</groupId>
  78. <artifactId>spring-security-oauth2-jose</artifactId>
  79. </dependency>
  80. <dependency>
  81. <groupId>com.alibaba.cloud</groupId>
  82. <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  83. <!-- 显式钉版本:离线(mvn -o)时 BOM 导入不一定参与解析,实逮报过 version is missing -->
  84. <version>${spring-cloud-alibaba.version}</version>
  85. <optional>true</optional>
  86. </dependency>
  87. </dependencies>
  88. <dependencyManagement>
  89. <dependencies>
  90. <dependency>
  91. <groupId>org.springframework.cloud</groupId>
  92. <artifactId>spring-cloud-dependencies</artifactId>
  93. <version>${spring-cloud.version}</version>
  94. <type>pom</type>
  95. <scope>import</scope>
  96. </dependency>
  97. <dependency>
  98. <groupId>com.alibaba.cloud</groupId>
  99. <artifactId>spring-cloud-alibaba-dependencies</artifactId>
  100. <version>${spring-cloud-alibaba.version}</version>
  101. <type>pom</type>
  102. <scope>import</scope>
  103. </dependency>
  104. </dependencies>
  105. </dependencyManagement>
  106. <build>
  107. <finalName>guanlan-backend</finalName>
  108. <!--
  109. 离线实逮(2026-09-29):本机仓里几个**老版本**构建插件(jar 3.2.2 / resources 3.2.0 / compiler 3.10.1)
  110. 的 POM 会牵出 `plexus-utils:1.1`,而本机仓里没有 1.1(只有 1.0.4/1.4.1/…/3.4.1)⇒ 离线报
  111. "Cannot access central ... plexus-utils:jar:1.1 has not been downloaded"。
  112. 做法:显式把插件钉到本机仓里**已齐备**的新版本(依赖都是 plexus-utils 3.x),不再走老版本的解析路径。
  113. -->
  114. <pluginManagement>
  115. <plugins>
  116. <plugin>
  117. <groupId>org.apache.maven.plugins</groupId>
  118. <artifactId>maven-compiler-plugin</artifactId>
  119. <version>3.10.1</version>
  120. </plugin>
  121. <plugin>
  122. <groupId>org.apache.maven.plugins</groupId>
  123. <artifactId>maven-resources-plugin</artifactId>
  124. <version>3.2.0</version>
  125. </plugin>
  126. <plugin>
  127. <groupId>org.apache.maven.plugins</groupId>
  128. <artifactId>maven-jar-plugin</artifactId>
  129. <version>3.2.2</version>
  130. <dependencies>
  131. <!-- 3.2.2 的 POM 会牵出 plexus-utils:1.1(本机仓没有)⇒ 显式顶到本机已有的 3.4.1 -->
  132. <dependency>
  133. <groupId>org.codehaus.plexus</groupId>
  134. <artifactId>plexus-utils</artifactId>
  135. <version>3.4.1</version>
  136. </dependency>
  137. <dependency>
  138. <groupId>org.apache.maven</groupId>
  139. <artifactId>maven-archiver</artifactId>
  140. <version>3.6.0</version>
  141. </dependency>
  142. </dependencies>
  143. </plugin>
  144. <plugin>
  145. <groupId>org.apache.maven.plugins</groupId>
  146. <artifactId>maven-install-plugin</artifactId>
  147. <version>2.5.2</version>
  148. </plugin>
  149. </plugins>
  150. </pluginManagement>
  151. <plugins>
  152. <plugin>
  153. <groupId>org.springframework.boot</groupId>
  154. <artifactId>spring-boot-maven-plugin</artifactId>
  155. <!--
  156. 离线实逮(2026-09-29):本机仓没有 `spring-boot-loader-tools:2.7.18`(repackage 的依赖),
  157. 故**不打 fat jar**,改出"瘦 jar + lib/ 依赖目录"(见 build-offline.cmd 的说明):
  158. 目标机用随包 JRE 跑 `java -cp "guanlan-backend.jar;lib/*" com.guanlan.backend.GuanlanBackendApplication`。
  159. -->
  160. <configuration>
  161. <skip>true</skip>
  162. </configuration>
  163. </plugin>
  164. <plugin>
  165. <groupId>org.apache.maven.plugins</groupId>
  166. <artifactId>maven-surefire-plugin</artifactId>
  167. <executions>
  168. <execution>
  169. <id>default-test</id>
  170. <phase>none</phase>
  171. </execution>
  172. </executions>
  173. </plugin>
  174. </plugins>
  175. </build>
  176. </project>