Skip to content

项目发现 v2.1.3+

Catboy 能够通过目录的组织形式,自动发现不同的项目以及同一项目下的不同目标。

推荐目录层次

以下是 Catboy 推荐的目录层次结构:

code/
├─ project-a/             # 项目 project-a
│  ├─ repo-a/             # 代码仓库 repo-a
│  │  └─ build.yaml       # Catboy 构建蓝图, 假设其中定义了属于项目 project-a
│  │                      #        同时声明了目标 target-1, target-2
│  └─ repo-b/             # 代码仓库 repo-b
│     └─ build.yaml       # Catboy 构建蓝图, 假设其中定义了属于项目 project-a
│                         #        同时声明了目标 target-3

└─ project-b/             # 项目 project-b
   ├─ repo-c/             # 代码仓库 repo-c
   │  └─ build.yaml       # Catboy 构建蓝图, 假设其中定义了属于项目 project-b
   │                      #        同时声明了目标 target-4, target-5
   └─ repo-d/             # 代码仓库 repo-d
      └─ build.yaml       # Catboy 构建蓝图, 假设其中定义了属于项目 project-b
                          #        同时声明了目标 target-6

项目与目标

即便构建目标身处不同的代码仓库,只要声明归属于同一项目,Catboy 会认为构建目标为平级关系。 上图中的目录结构经过解析后,在 Catboy 的视角中层次如下:

项目 project-a
├─ 构建目标 target-1
├─ 构建目标 target-2
└─ 构建目标 target-3

项目 project-b
├─ 构建目标 target-4
├─ 构建目标 target-5
└─ 构建目标 target-6

可见经过 Catboy 解析后,没有了仓库(存放代码的目录)这一的概念。这种解析被称为「Catboy 项目发现」机制。

项目发现

Catboy 的项目发现依赖于推荐的目录层次

当你在构建蓝图(build.yaml)中指定了项目 project-a 时,Catboy 期待你的代码仓库 repo-a 的上级目录 code 是项目目录,并包含其他同属于同一项目的代码仓库 repo-b

Catboy 在引用其他项目或其他构建目标时,会基于这样的目录关系进行查找。

本页面内容遵循 Luna 软件源代码授权条款 (LSLA) 发布