首次真启动整个 yudao-server 单体暴露预存装配缺陷(此前只验编译+单测)。按 live 错误栈两层根因修复:
- 撤销 yudao-server/pom.xml 对 spring-cloud-starter-openfeign 的排除——framework starter
(YudaoSecurityRpcAutoConfiguration 等)自带 @EnableFeignClients 需 openfeign 在 classpath
- 补 yudao 上游漏标的 primary=false:OAuth2TokenCommonApi/TenantCommonApi/ApiAccessLogCommonApi/
ApiErrorLogCommonApi 四个 @FeignClient + 对应 4 个 *ApiImpl 加 @Primary(同 PermissionApiImpl 范式),
使单体内本地实现胜过 Feign 远程代理
- application-staging.yaml:DB/Redis→隔离容器 13306/16379(${ENV} 占位非明文)、nacos/xxl 关、
mock-enable、tenant.enable=false(单租户)、openfeign 回环 48080
验证(主 agent 独立 mini-desktop 观测 + 本机编译):Started YudaoServerApplication;Flyway V1-V9 全 success;
24 张 game_* 表;/v3/api-docs 87 paths 9 模块无 game/ 前缀;POST /app-api/project/1/publish→admitted+gates 含 key=compliance;
本机 mvn -am compile BUILD SUCCESS。Application.java 未改(原 @EnableFeignClients 假设会致双 primary 冲突,实测不需要)。
P1 遗留:admin-api @PreAuthorize 端点撞 yudao 单体嵌套 Feign 回环 404(app-api 主链路不受影响)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
254 lines
10 KiB
XML
254 lines
10 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">
|
||
<parent>
|
||
<groupId>cn.iocoder.cloud</groupId>
|
||
<artifactId>yudao</artifactId>
|
||
<version>${revision}</version>
|
||
</parent>
|
||
<modelVersion>4.0.0</modelVersion>
|
||
|
||
<artifactId>yudao-server</artifactId>
|
||
<packaging>jar</packaging>
|
||
|
||
<name>${project.artifactId}</name>
|
||
<description>
|
||
后端 Server 的主项目,通过引入需要 yudao-module-xxx 的依赖,
|
||
从而实现提供 RESTful API 给 yudao-ui-admin、yudao-ui-user 等前端项目。
|
||
本质上来说,它就是个空壳(容器)!
|
||
</description>
|
||
<url>https://github.com/YunaiV/ruoyi-vue-pro</url>
|
||
|
||
<dependencies>
|
||
<dependency>
|
||
<groupId>cn.iocoder.cloud</groupId>
|
||
<artifactId>yudao-module-system-server</artifactId>
|
||
<version>${revision}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>cn.iocoder.cloud</groupId>
|
||
<artifactId>yudao-module-infra-server</artifactId>
|
||
<version>${revision}</version>
|
||
</dependency>
|
||
<!-- 绘境 game 业务模块(黄金模板先行,聚合进单体) -->
|
||
<dependency>
|
||
<groupId>cn.iocoder.cloud</groupId>
|
||
<artifactId>game-module-project-server</artifactId>
|
||
<version>${revision}</version>
|
||
</dependency>
|
||
<!-- Wave1 闭环脊柱 4 模块(聚合进单体;全局扫描已覆盖 cn.wanxiang.game.module,无需改 Application/yaml) -->
|
||
<dependency>
|
||
<groupId>cn.iocoder.cloud</groupId>
|
||
<artifactId>game-module-aigc-server</artifactId>
|
||
<version>${revision}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>cn.iocoder.cloud</groupId>
|
||
<artifactId>game-module-runtime-server</artifactId>
|
||
<version>${revision}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>cn.iocoder.cloud</groupId>
|
||
<artifactId>game-module-feed-server</artifactId>
|
||
<version>${revision}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>cn.iocoder.cloud</groupId>
|
||
<artifactId>game-module-telemetry-server</artifactId>
|
||
<version>${revision}</version>
|
||
</dependency>
|
||
<!-- Wave2 变现域 2 模块(ad 广告引擎 / trade 分账·结算·提现;聚合进单体,全局扫描已覆盖 cn.wanxiang.game.module) -->
|
||
<dependency>
|
||
<groupId>cn.iocoder.cloud</groupId>
|
||
<artifactId>game-module-ad-server</artifactId>
|
||
<version>${revision}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>cn.iocoder.cloud</groupId>
|
||
<artifactId>game-module-trade-server</artifactId>
|
||
<version>${revision}</version>
|
||
</dependency>
|
||
<!-- Wave3 模块(compliance 锁风门 Gate / studio 创作主链路编排;聚合进单体,全局扫描已覆盖 cn.wanxiang.game.module) -->
|
||
<dependency>
|
||
<groupId>cn.iocoder.cloud</groupId>
|
||
<artifactId>game-module-compliance-server</artifactId>
|
||
<version>${revision}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>cn.iocoder.cloud</groupId>
|
||
<artifactId>game-module-studio-server</artifactId>
|
||
<version>${revision}</version>
|
||
</dependency>
|
||
<!-- Flyway 数据库迁移(版本由 spring-boot-dependencies 管理 = 11.x;MySQL 需 flyway-mysql) -->
|
||
<dependency>
|
||
<groupId>org.flywaydb</groupId>
|
||
<artifactId>flyway-core</artifactId>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.flywaydb</groupId>
|
||
<artifactId>flyway-mysql</artifactId>
|
||
</dependency>
|
||
|
||
<!-- 会员中心。默认注释,保证编译速度 -->
|
||
<!-- <dependency>-->
|
||
<!-- <groupId>cn.iocoder.cloud</groupId>-->
|
||
<!-- <artifactId>yudao-module-member-server</artifactId>-->
|
||
<!-- <version>${revision}</version>-->
|
||
<!-- </dependency>-->
|
||
|
||
<!-- 数据报表。默认注释,保证编译速度 -->
|
||
<!-- <dependency>-->
|
||
<!-- <groupId>cn.iocoder.cloud</groupId>-->
|
||
<!-- <artifactId>yudao-module-report-server</artifactId>-->
|
||
<!-- <version>${revision}</version>-->
|
||
<!-- </dependency>-->
|
||
<!-- 工作流。默认注释,保证编译速度 -->
|
||
<!-- <dependency>-->
|
||
<!-- <groupId>cn.iocoder.cloud</groupId>-->
|
||
<!-- <artifactId>yudao-module-bpm-server</artifactId>-->
|
||
<!-- <version>${revision}</version>-->
|
||
<!-- </dependency>-->
|
||
<!-- 支付服务。默认注释,保证编译速度 -->
|
||
<!-- <dependency>-->
|
||
<!-- <groupId>cn.iocoder.cloud</groupId>-->
|
||
<!-- <artifactId>yudao-module-pay-server</artifactId>-->
|
||
<!-- <version>${revision}</version>-->
|
||
<!-- </dependency>-->
|
||
|
||
<!-- 微信公众号模块。默认注释,保证编译速度 -->
|
||
<!-- <dependency>-->
|
||
<!-- <groupId>cn.iocoder.cloud</groupId>-->
|
||
<!-- <artifactId>yudao-module-mp-server</artifactId>-->
|
||
<!-- <version>${revision}</version>-->
|
||
<!-- </dependency>-->
|
||
|
||
<!-- 商城相关模块。默认注释,保证编译速度-->
|
||
<!-- <dependency>-->
|
||
<!-- <groupId>cn.iocoder.cloud</groupId>-->
|
||
<!-- <artifactId>yudao-module-product-server</artifactId>-->
|
||
<!-- <version>${revision}</version>-->
|
||
<!-- </dependency>-->
|
||
<!-- <dependency>-->
|
||
<!-- <groupId>cn.iocoder.cloud</groupId>-->
|
||
<!-- <artifactId>yudao-module-promotion-server</artifactId>-->
|
||
<!-- <version>${revision}</version>-->
|
||
<!-- </dependency>-->
|
||
<!-- <dependency>-->
|
||
<!-- <groupId>cn.iocoder.cloud</groupId>-->
|
||
<!-- <artifactId>yudao-module-trade-server</artifactId>-->
|
||
<!-- <version>${revision}</version>-->
|
||
<!-- </dependency>-->
|
||
<!-- <dependency>-->
|
||
<!-- <groupId>cn.iocoder.cloud</groupId>-->
|
||
<!-- <artifactId>yudao-module-statistics-server</artifactId>-->
|
||
<!-- <version>${revision}</version>-->
|
||
<!-- </dependency>-->
|
||
|
||
<!-- CRM 相关模块。默认注释,保证编译速度 -->
|
||
<!-- <dependency>-->
|
||
<!-- <groupId>cn.iocoder.cloud</groupId>-->
|
||
<!-- <artifactId>yudao-module-crm-server</artifactId>-->
|
||
<!-- <version>${revision}</version>-->
|
||
<!-- </dependency>-->
|
||
|
||
<!-- ERP 相关模块。默认注释,保证编译速度 -->
|
||
<!-- <dependency>-->
|
||
<!-- <groupId>cn.iocoder.cloud</groupId>-->
|
||
<!-- <artifactId>yudao-module-erp-server</artifactId>-->
|
||
<!-- <version>${revision}</version>-->
|
||
<!-- </dependency>-->
|
||
|
||
<!-- AI 大模型相关模块。默认注释,保证编译速度 -->
|
||
<!-- <dependency>-->
|
||
<!-- <groupId>cn.iocoder.cloud</groupId>-->
|
||
<!-- <artifactId>yudao-module-ai-server</artifactId>-->
|
||
<!-- <version>${revision}</version>-->
|
||
<!-- </dependency>-->
|
||
|
||
<!-- IoT 物联网相关模块。默认注释,保证编译速度 -->
|
||
<!-- <dependency>-->
|
||
<!-- <groupId>cn.iocoder.cloud</groupId>-->
|
||
<!-- <artifactId>yudao-module-iot-server</artifactId>-->
|
||
<!-- <version>${revision}</version>-->
|
||
<!-- </dependency>-->
|
||
|
||
<!-- MES 制造执行系统相关模块 -->
|
||
<!-- <dependency>-->
|
||
<!-- <groupId>cn.iocoder.cloud</groupId>-->
|
||
<!-- <artifactId>yudao-module-mes-server</artifactId>-->
|
||
<!-- <version>${revision}</version>-->
|
||
<!-- </dependency>-->
|
||
|
||
<!-- WMS 仓库管理模块 -->
|
||
<!-- <dependency>-->
|
||
<!-- <groupId>cn.iocoder.cloud</groupId>-->
|
||
<!-- <artifactId>yudao-module-wms-server</artifactId>-->
|
||
<!-- <version>${revision}</version>-->
|
||
<!-- </dependency>-->
|
||
|
||
<!-- IM 即时通讯模块 -->
|
||
<!-- <dependency>-->
|
||
<!-- <groupId>cn.iocoder.cloud</groupId>-->
|
||
<!-- <artifactId>yudao-module-im-server</artifactId>-->
|
||
<!-- <version>${revision}</version>-->
|
||
<!-- </dependency>-->
|
||
|
||
<!-- spring boot 配置所需依赖 -->
|
||
<dependency>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-configuration-processor</artifactId>
|
||
<optional>true</optional>
|
||
</dependency>
|
||
|
||
<!-- 服务保障相关 -->
|
||
<dependency>
|
||
<groupId>cn.iocoder.cloud</groupId>
|
||
<artifactId>yudao-spring-boot-starter-protection</artifactId>
|
||
</dependency>
|
||
|
||
<!-- Registry 注册中心相关 -->
|
||
<dependency>
|
||
<groupId>com.alibaba.cloud</groupId>
|
||
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
|
||
</dependency>
|
||
|
||
<!-- Config 配置中心相关 -->
|
||
<dependency>
|
||
<groupId>com.alibaba.cloud</groupId>
|
||
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
|
||
</dependency>
|
||
|
||
<!-- RPC 远程调用相关 -->
|
||
<dependency>
|
||
<groupId>cn.iocoder.cloud</groupId>
|
||
<artifactId>yudao-spring-boot-starter-rpc</artifactId>
|
||
<!-- staging 单体启动修法:撤销对 openfeign 的排除,让 spring-cloud-starter-openfeign 进入 classpath。
|
||
framework 自带 @EnableFeignClients(YudaoSecurityRpcAutoConfiguration 等)需 openfeign 在 classpath;本地 @Primary *ApiImpl 同进程覆盖远程调用。
|
||
nacos discovery/config 仍 enabled=false,不做真实注册发现。 -->
|
||
</dependency>
|
||
|
||
</dependencies>
|
||
|
||
<build>
|
||
<!-- 设置构建的 jar 包名 -->
|
||
<finalName>${project.artifactId}</finalName>
|
||
<plugins>
|
||
<!-- 打包 -->
|
||
<plugin>
|
||
<groupId>org.springframework.boot</groupId>
|
||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||
<version>${spring.boot.version}</version>
|
||
<executions>
|
||
<execution>
|
||
<goals>
|
||
<goal>repackage</goal> <!-- 将引入的 jar 打入其中 -->
|
||
</goals>
|
||
</execution>
|
||
</executions>
|
||
</plugin>
|
||
</plugins>
|
||
</build>
|
||
|
||
</project>
|