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

相关推荐
qq_297574672 小时前
MySQL迁移到瀚高数据库 常用转换函数对照表(附XML示例,直接复用)
xml·数据库·mysql
好好研究1 天前
SpringBoot整合SpringMVC
xml·java·spring boot·后端·mvc
从此不归路2 天前
Qt5 进阶【12】JSON/XML 数据协议处理:与后端/配置文件的对接
xml·开发语言·c++·qt·json
方芯半导体3 天前
EtherCAT “通信 + 控制“ 的全国产化控制方案,ESC芯片(FCE1323)与国产MCU芯片功能板解析
xml·网络·单片机·嵌入式硬件·网络协议·机器人·自动化
好好研究3 天前
总结SSM设置欢迎页的方式
xml·java·后端·mvc
R-sz4 天前
mybatis的XML,如何多值匹配,支持单值(=)和多值(IN)查询
xml·mybatis
方芯半导体4 天前
EtherCAT从站控制器芯片(FCE1353)与MCU(STM32H743)功能板解析!
xml·stm32·单片机·嵌入式硬件·物联网·自动化
码农娟5 天前
Hutool XML工具-XmlUtil的使用
xml·java
码农娟5 天前
Hutool XML工具-XmlUtil遇到标签问题
xml
草履虫建模6 天前
A02 Maven 基础配置:本地仓库、镜像、项目编码与常见问题(IDEA 实战)
xml·java·spring boot·spring·maven·intellij-idea·idea