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 语法简洁但功能强大,能够高效管理复杂项目的多仓库依赖关系。

相关推荐
欧特克_Glodon2 天前
OpenCV计算机视觉开发入门与实践<十二>:XML 和 YAML 文件读写
xml·c++·opencv·计算机视觉
程序员-珍2 天前
安卓开发:同名 styles.xml 在不同分支/文件夹的合并规则
android·xml·前端
LitchiCheng5 天前
还在改xml调相机?MuJoCo交互式可视化调整相机安装位置
xml·数码相机
richard_yuu5 天前
JSON vs XML vs 二进制:3种序列化终极选型
xml·c++·qt·学习·json
秋田君7 天前
QT_XML文件操作
xml·数据库·qt
数据知道8 天前
XXE 漏洞深度实战:XML 外部实体攻击与 OOB 带外
xml·网络·安全·网络安全
云水一下8 天前
零基础玩转bWAPP靶场(四十七):XSS - Reflected (AJAX/XML)
xml·web安全·ajax·xss·bwapp
爱敲键盘的猴子10 天前
深入理解 Spring IoC -- 基于 XML 的 Bean 配置详解
xml·java·spring
前网易架构师-高司机11 天前
带标注的羽毛球运动员,裁判,羽毛球识别数据集,识别率84.4%,2879张图,支持yolo,coco json,voc xml,文末有模型训练代码
xml·yolo·json·数据集·羽毛球·裁判
微微1笑抽了筋14 天前
xml中设置透明度
xml