repo xml语法

Repo XML 语法详解

Repo 是 Google 为管理多个 Git 仓库而开发的工具,其配置文件使用 XML 格式。最近搞项目,也是刚接触这个,中途查资料学习了一下,这里记录一下:

1. 基本结构

Repo 的清单文件(manifest)通常命名为 default.xml ,基本结构如下:

c 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <!-- 远程仓库定义 -->
  <remote name="origin" fetch="https://android.googlesource.com"  />
  
  <!-- 默认设置 -->
  <default revision="master" remote="origin" sync-j="4" />
  
  <!-- 项目定义 -->
  <project path="build/make" name="platform/build/make" />
</manifest>

2. 主要元素

2.1 remote 元素

定义远程 Git 仓库:

c 复制代码
<remote name="唯一名称" 
        fetch="仓库URL前缀" 
        review="代码审查服务器URL" 
        revision="默认分支" 
        pushurl="推送URL(可选)"/>

2.2 default 元素

设置默认值,会被各项目继承:

c 复制代码
<default remote="默认远程名称" 
         revision="默认分支/标签" 
         sync-j="并行同步线程数"
         sync-c="是否同步标签(布尔值)"
         sync-s="是否同步子模块(布尔值)"/>

2.3 project 元素

定义要管理的 Git 项目:

c 复制代码
<project path="本地路径" 
         name="远程仓库相对路径" 
         remote="远程名称(可选)" 
         revision="分支/标签/SHA1(可选)"
         groups="分组列表(逗号分隔)"
         sync-c="是否同步标签(可选)"
         sync-s="是否同步子模块(可选)"
         clone-depth="克隆深度(可选)"/>

3. 高级特性

3.1 包含其他清单文件

c 复制代码
<include name="another_manifest.xml"  />

3.2 扩展项目

c 复制代码
<extend-project name="已有项目路径" 
               revision="新分支" 
               groups="新增分组"
               remote="新远程"/>

3.3 移除项目

c 复制代码
<remove-project name="要移除的项目路径" />

3.4 注解元素

c 复制代码
<annotation name="注解名称" 
           value="注解值" 
           keep="是否保留(可选)"/>
  1. 完整示例
c 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <remote name="aosp" fetch="https://android.googlesource.com"  />
  <remote name="github" fetch="https://github.com"  />
  
  <default remote="aosp" revision="android-12.0.0_r1" sync-j="4" />
  
  <project path="build/make" name="platform/build/make" />
  
  <project path="frameworks/base" name="platform/frameworks/base" 
           revision="android-12.0.0_r2" groups="pdk,cts" />
           
  <project path="external/openssl" name="external/openssl" 
           remote="github" revision="OpenSSL_1_1_1-stable" />
           
  <include name="custom_projects.xml"  />
  <!-- 注释  -->
  <annotation name="BUILD_ID" value="SQ1A.211205.008" />
</manifest>

6. 注意事项

default元素只能有一个

路径使用 Unix 风格斜杠(/)

元素和属性名称区分大小写

注释格式:

c 复制代码
<!-- 注释  -->
<include name="custom_projects.xml"  />

特殊字符需使用 XML 实体编码

清单文件通常保存在 .repo/manifests/ 目录下

Repo XML 语法简洁但功能强大,能够高效管理复杂项目的多仓库依赖关系。

相关推荐
泡海椒17 小时前
JQuick-Excel 字段映射实战:用 MAPPING 固化 Excel 表头与业务字段契约
xml·java·开发语言·excel
执明wa14 天前
Android RecyclerView 多类型, 多种 Item
android·xml·开发语言·设计模式·android studio
wl851114 天前
SAP CPI 教程004 如何通过groovy修改XML节点属性值
xml
码匠许师傅15 天前
【C++三方组件】TinyXML2:两个文件的极简 XML 解析器
xml·c++
yuzhiboyouye17 天前
my-batisPlus什么时候用xml什么时候用mapper自带的方法,这两种写法专业一点叫什么,什么场景分别使用
xml
筝筝ba18 天前
如何跳过FFDC
xml·linux·运维·服务器·网络
yuzhiboyouye18 天前
那xml对应的sql语法,列举一下
xml·数据库·sql
筝筝ba23 天前
OpenBMC 自动化测试中的多进程陷阱:从 Execute Process 返回异常到 output.xml 损坏问题分析
xml·linux·运维·服务器·网络
spencer_tseng1 个月前
[j2cache ehcache.xml]/tmp/.ehcache-diskstore.lock (Permission denied)
xml·linux·python·ehcache·[j2cache
DevOpenClub1 个月前
PDF 多格式解析如何避免混用输出:TEXT、HTML、XML 与 TAG 数据契约
xml·前端·数据库·pdf·html