-
Notifications
You must be signed in to change notification settings - Fork 0
Home
这里是 kjBot 框架最佳实践 —— kjBot 的仓库。
你可能已经注意到了,这个仓库只有简简单单两个 xml 文件,它们是 repo 管理项目的典型特征。
repo 是一个多仓库项目的 git 工具,在面对大量仓库时比 git submodule
更有优势。且 git submodule
在更新大量子模块时极易出现问题。repo 可以有效应对 kjBot 模块日益增多的情况。
下面的教程将指导你从零开始使用 kjBot 框架构建你自己的 bot:
首先创建基础文件 default.xml
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<!-- 定义远端简写 -->
<remote name="github"
fetch="https://github.com/" />
<!-- 可自行替换远端来拉取不同的目标 -->
<remote name="kjBot"
fetch="https://github.com/kjBot-Dev/" />
<remote name="kjBot-Modules"
fetch="https://github.com/kjBot-Modules/" />
<!-- 声明默认值-->
<default revision="refs/heads/master"
remote="github"
sync-j="4"
sync-c="true" />
<!-- 框架 -->
<project path="." name="framework" remote="kjBot" revision="0.x" />
<!-- 自定义 -->
<include name="snippets/kjBot.xml" />
</manifest>
然后创建 snippets/kjBot.xml
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project path="manifest" name="kjBot" remote="kjBot" /> <!-- repo 定义仓库本身,可以不加这一行 -->
<!-- 根据实际需要添加模块包 -->
<project path="modules/kjBot_Dev/Demo" name="Demo" remote="kjBot-Modules" revision="0.x" />
</manifest>
简单介绍一下添加模块包的那一行 <project path="modules/kjBot_Dev/Demo" name="Demo" remote="kjBot-Modules" revision="0.x" />
这里 path
表示相对 repo 根目录的路径,项目将放到该文件夹下,从 remote="kjBot-Modules"
(即 kjBot 模块组织) 拉取名为 Demo
的仓库的 0.x
版本(可以是 branch 也可以是 tag) ,同时也在整个 repo 中声明了该项目名为 Demo
。关于他人模块包的正确使用请参考框架文档。
完成后将仓库提交到 Github,下面以本仓库为例。(-u
指定远端仓库, -b
指定版本)
repo init -u https://github.com/kjBot-Dev/kjBot -b 0.x
上述操作将会在当前文件夹创建 repo 所需的工具链和配置文件,并克隆 repo 定义仓库。然后运行:
repo sync -j4
拉取所有项目的更新,以四线程模式运行。
现在你已经得到了运行 kjBot 所需的基础代码,接下来根据模块包的指示编辑配置文件,并恢复 composer 包 composer update
。
假如有模块更新了,你仍然可以使用 repo sync
来拉取版本更新,在模块包开发者遵循语义化版本的情况下,你不需要进行任何额外操作。不过你仍然可以关注一下模块更新是否添加了新的模块和新的插件,并及时应用到配置文件 :)