67 lines
4.1 KiB
Markdown
67 lines
4.1 KiB
Markdown
---
|
||||
|
|
name: g3fo-nacos-config
|
|||
|
|
description: 分析并修改 g3fo-db/当前工作区下 nacos_config 目录中的配置。若当前项目没有 nacos_config 则提示用户打开 g3fo-db 或提供 g3fo-db 路径。支持添加、修改 yml 配置及添加配置注释;需引导用户确认「场」与「单个配置文件」;当添加/修改位置不确定时必须先与用户确认再执行;在合适位置、正确缩进下编辑。
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# nacos_config 分析与修改
|
|||
|
|
|
|||
|
|
## 目录结构
|
|||
|
|
|
|||
|
|
- **根路径**:当前工作区根目录下的 `nacos_config`;若不存在则要求用户打开 g3fo-db 或提供 g3fo-db 的明确路径。
|
|||
|
|
- **场(site)**:`nacos_config/{site_name}/`,每个子目录为一个场(如 afe_ap、dev_200、uat_226、vn-demo 等)。场列表通过列出 `nacos_config` 子目录动态得到,不写死。
|
|||
|
|
- **配置文件**:每场下多为 yml,常见有 `common.yml`、`dubbo.yml`、`mysql.yml`、`redis.yml`、`rocketmq.yml` 以及各服务 `g3fo-*-dev.yml` 等。
|
|||
|
|
|
|||
|
|
## 用户交互流程(必须按顺序执行)
|
|||
|
|
|
|||
|
|
### 0. 确认 nacos_config 所在位置
|
|||
|
|
|
|||
|
|
- 先检查**当前工作区根目录**下是否存在 `nacos_config`。
|
|||
|
|
- **若不存在**:提示「当前项目下未找到 `nacos_config` 目录」,引导用户二选一:
|
|||
|
|
- 请先**打开 g3fo-db 项目**再操作,或
|
|||
|
|
- **提供 g3fo-db 项目的明确路径**(后续操作基于该路径下的 `nacos_config`)。
|
|||
|
|
- 在用户完成其一之前**不执行任何配置编辑**。
|
|||
|
|
- 若存在或用户已提供路径,继续下一步。
|
|||
|
|
|
|||
|
|
### 1. 确定要修改的场
|
|||
|
|
|
|||
|
|
- 若用户**未明确**要改哪个场:反问用户,并**列出**(当前工作区或用户提供的 g3fo-db 路径下的)`nacos_config` 下所有子目录(即所有场),引导用户选择**一个或多个场**,或选择「**全部场**」。
|
|||
|
|
- 若用户已明确指定场,则直接使用。
|
|||
|
|
|
|||
|
|
### 2. 确定要修改的配置文件
|
|||
|
|
|
|||
|
|
- 若用户**未指定**配置文件,或指定了**多个**:**引导用户确认仅一个**配置文件(如 `common.yml`、`dubbo.yml` 等)。
|
|||
|
|
- 若用户已明确指定一个配置文件,则直接使用。
|
|||
|
|
|
|||
|
|
### 3. 确定添加/修改位置(必须遵守)
|
|||
|
|
|
|||
|
|
- **当不确定**要把新配置加在哪个位置、或要改哪一处时:**必须先与用户确认**(列出可选位置或给出建议,等用户选定),**再执行**编辑;不得在位置模糊时自行猜测并修改。
|
|||
|
|
|
|||
|
|
### 4. 执行修改
|
|||
|
|
|
|||
|
|
在选定的每个「场」下,对选定的配置文件进行编辑:
|
|||
|
|
|
|||
|
|
- **添加**:根据要添加的 key 路径(如 `dubbo.application.metadata-service-port`)在文件中找合适位置——若已有同名顶级块(如 `dubbo`)则合并到该块下并保持 2 空格缩进;若无则新增顶级块,放在与现有顶级键风格一致的位置。位置不明确时先与用户确认再执行。
|
|||
|
|
- **修改**:若 key 已存在,则只改值并保持原有缩进与注释风格;若存在多处或歧义,先与用户确认再执行。
|
|||
|
|
- **添加配置的注释**:在指定 key 上方或行尾添加注释,风格与文件内现有注释一致;位置不明确时先与用户确认再执行。
|
|||
|
|
|
|||
|
|
**YAML 规则**:一律 **2 空格缩进**;新加块与现有同级键对齐;不破坏现有注释与键顺序。若文件中已有 `dubbo` 块,新 dubbo 相关项应合并到该块下,避免重复顶级 `dubbo`。插入新顶级块时的常见顺序可参考 [references/yml-placement.md](references/yml-placement.md)。
|
|||
|
|
|
|||
|
|
## 示例
|
|||
|
|
|
|||
|
|
**在 common.yml 中添加 dubbo 配置**
|
|||
|
|
|
|||
|
|
若 `common.yml` 中尚无顶级 `dubbo`,可新增顶级块(与 `server`、`spring` 等同级),例如:
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
dubbo:
|
|||
|
|
application:
|
|||
|
|
metadata-service-port: 28101
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
若 `common.yml` 或目标文件中已有 `dubbo:` 块,则将 `metadata-service-port` 合并到 `dubbo.application` 下,保持 2 空格缩进,不新增重复的 `dubbo:` 顶级键。
|
|||
|
|
|
|||
|
|
## 约定摘要
|
|||
|
|
|
|||
|
|
- **路径**:优先用当前工作区的 `nacos_config`;没有则要求用户打开 g3fo-db 或提供 g3fo-db 路径。
|
|||
|
|
- **确认优先**:添加/修改/注释的**目标位置**一旦不确定,必须先与用户确认再执行,不得自行猜测。
|