Skip to content

LLAR Builder实现 #25

@MeteorsLiu

Description

@MeteorsLiu

目录结构(MVP)

llar/
├── cmd/                    # LLAR Cli模块
│   └── ...
├── internal/
│   ├── mvs/               # Go MVS选择算法
│   │   └── ...
│   ├── build/           # 构建模块
│   │   └── ...
│   ├── deps/              # 依赖模块
│   │   └── ...
│   └── ixgo/              # ixgo
│       └── ...
├── pkgs/                  # FormulaApp工具类包
│   └── ...
└── formula.go        # FormulaApp

模块划分

graph TD
A["依赖管理模块(deps)"]
B["LLAR Cli模块(cmd)"]
C[FormulaApp]
D[ixgo]
E["构建模块(build)"]


B --> E
E <--> A
A <--> C
C --> D
E --> D
D --> |加载|C
Loading

模块输入输出

依赖管理模块

功能:

  1. 增量添加依赖
  2. 通过Go MVS算法计算依赖有向图
  3. 解析versions.json

输入:versions.json[]byte 或者文件路径

LLAR Cli模块

#17

FormulaApp

#21

ixgo运行模块

功能:

  1. 自动配置xgo项目(RegisterProject)
  2. 根据用户需求,找到需要的配方
  3. 与依赖管理模块互动
  4. 根据依赖管理模块,执行构建

依赖管理模块互动

graph TD
A["初始化:调用配方Main()"] --> B[执行配方onRequire回调]
B --> C[依赖管理模块]
C --> D[获取依赖有向图]
D --> E[获得Buildlist]
E --> F[根据Buildlist执行配方构建]

Loading

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions