| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- 观澜 · 后端(Java + Spring Boot + Swagger)—— 用户令 2026-09-29:后端完全用 Java + Spring Boot + Swagger 实现,
- 与算法模块经接口交互,行为与重构前一致(对拍基准:app_backEnd/app_backEnd_guanlan/contract/http_api_v1.json)。
- 工具链口径(本机实测):JDK 1.8.0_202(D:\Program Files\Java\jdk1.8.0_202)+ Maven 3.8.9;
- Maven Central 不可达,但用户级本地仓已含所需构件,故**离线编译**:
- mvn -o -Dmaven.repo.local=C:\Users\86189\.m2\repository package
- -->
- <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>2.7.18</version>
- <relativePath/>
- </parent>
- <groupId>com.guanlan</groupId>
- <artifactId>guanlan-backend</artifactId>
- <version>0.1.0</version>
- <name>guanlan-backend</name>
- <description>观澜 v2 后端(Java 8 + Spring Boot 2.7 + Swagger + MyBatis-Plus 预留)</description>
- <properties>
- <java.version>1.8</java.version>
- <maven.compiler.source>1.8</maven.compiler.source>
- <maven.compiler.target>1.8</maven.compiler.target>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <springfox.version>3.0.0</springfox.version>
- <spring-cloud.version>2021.0.9</spring-cloud.version>
- <spring-cloud-alibaba.version>2021.0.5.0</spring-cloud-alibaba.version>
- </properties>
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
- <!-- Swagger:springfox 3(本地仓已有 springfox-boot-starter 3.0.0,含 swagger2 + swagger-ui) -->
- <dependency>
- <groupId>io.springfox</groupId>
- <artifactId>springfox-boot-starter</artifactId>
- <version>${springfox.version}</version>
- </dependency>
- <!--
- 离线实逮(2026-09-29):springfox 3 的 swagger2 映射器在运行期要 `org.mapstruct.factory.Mappers`,
- 但它在 springfox 的 POM 里是 provided/未传递 ⇒ 直接跑会
- `NoClassDefFoundError: org/mapstruct/factory/Mappers`(启动即失败)。显式补上(本机仓有 1.3.1.Final)。
- -->
- <dependency>
- <groupId>org.mapstruct</groupId>
- <artifactId>mapstruct</artifactId>
- <version>1.3.1.Final</version>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-test</artifactId>
- <scope>test</scope>
- </dependency>
- <!--
- ★2026-09-29 用户令:把这几样补齐(本机仓原先没有;Maven Central/阿里云镜像**可达**,
- 用 settings-online.xml 下到用户本地仓,之后仍可离线编译):
- · OAuth2 + JWT —— Boot 2.7 线用 resource-server + jose(spring-cloud-starter-oauth2 已停更)
- · Spring Security —— 鉴权基础设施
- · Nacos(Spring Cloud Alibaba)—— 服务发现/配置;单体模式不启 Nacos 也能跑
- ★Spring Cloud **Gateway 不放在本工程**(实逮):Gateway 跑 WebFlux,与本工程的 MVC(Tomcat)+springfox
- 同进程不兼容(官方二选一)⇒ 网关独立成 ../backend-gateway 工程。
- -->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-security</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-oauth2-resource-server</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.security</groupId>
- <artifactId>spring-security-oauth2-jose</artifactId>
- </dependency>
- <dependency>
- <groupId>com.alibaba.cloud</groupId>
- <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
- <!-- 显式钉版本:离线(mvn -o)时 BOM 导入不一定参与解析,实逮报过 version is missing -->
- <version>${spring-cloud-alibaba.version}</version>
- <optional>true</optional>
- </dependency>
- </dependencies>
- <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>
- <dependency>
- <groupId>com.alibaba.cloud</groupId>
- <artifactId>spring-cloud-alibaba-dependencies</artifactId>
- <version>${spring-cloud-alibaba.version}</version>
- <type>pom</type>
- <scope>import</scope>
- </dependency>
- </dependencies>
- </dependencyManagement>
- <build>
- <finalName>guanlan-backend</finalName>
- <!--
- 离线实逮(2026-09-29):本机仓里几个**老版本**构建插件(jar 3.2.2 / resources 3.2.0 / compiler 3.10.1)
- 的 POM 会牵出 `plexus-utils:1.1`,而本机仓里没有 1.1(只有 1.0.4/1.4.1/…/3.4.1)⇒ 离线报
- "Cannot access central ... plexus-utils:jar:1.1 has not been downloaded"。
- 做法:显式把插件钉到本机仓里**已齐备**的新版本(依赖都是 plexus-utils 3.x),不再走老版本的解析路径。
- -->
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.10.1</version>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-resources-plugin</artifactId>
- <version>3.2.0</version>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <version>3.2.2</version>
- <dependencies>
- <!-- 3.2.2 的 POM 会牵出 plexus-utils:1.1(本机仓没有)⇒ 显式顶到本机已有的 3.4.1 -->
- <dependency>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-utils</artifactId>
- <version>3.4.1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-archiver</artifactId>
- <version>3.6.0</version>
- </dependency>
- </dependencies>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-install-plugin</artifactId>
- <version>2.5.2</version>
- </plugin>
- </plugins>
- </pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- <!--
- 离线实逮(2026-09-29):本机仓没有 `spring-boot-loader-tools:2.7.18`(repackage 的依赖),
- 故**不打 fat jar**,改出"瘦 jar + lib/ 依赖目录"(见 build-offline.cmd 的说明):
- 目标机用随包 JRE 跑 `java -cp "guanlan-backend.jar;lib/*" com.guanlan.backend.GuanlanBackendApplication`。
- -->
- <configuration>
- <skip>true</skip>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <executions>
- <execution>
- <id>default-test</id>
- <phase>none</phase>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </project>
|