Unterstützung von Git-Untermodulen für Adobe-Repositorys git-submodule-support

Git-Untermodule können verwendet werden, um den Inhalt mehrerer Verzweigungen zum Build-Zeitpunkt über Git-Repositorys hinweg zusammenzuführen.

Wenn der Build-Prozess von Cloud Manager ausgeführt wird, nachdem das für die Pipeline konfigurierte Repository geklont und die konfigurierte Verzweigung ausgecheckt wurde, wird der Befehl ausgeführt, sofern die Verzweigung eine .gitmodules-Datei im Stammverzeichnis enthält.

$ git submodule update --init

Dadurch wird jedes Untermodul in das entsprechende Verzeichnis eingecheckt. Diese Technik ist eine potenzielle Alternative zur Arbeit mit mehreren Quell-Git-Repositorys für Organisationen, die mit der Verwendung von Git-Untermodulen vertraut sind und keinen externen Zusammenführungsprozess verwalten möchten.

Angenommen, es gibt drei Repositorys, die jeweils eine einzige Verzweigung mit dem Namen main enthalten. Im „primären“ Repository, d. h. dem in den Pipelines konfigurierten, verfügt die Verzweigung main über eine pom.xml-Datei, in der die in den beiden anderen Repositorys enthaltenen Projekte deklariert werden:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>customer.group.id</groupId>
    <artifactId>customer-reactor</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>

    <modules>
        <module>project-a</module>
        <module>project-b</module>
    </modules>

</project>

Anschließend fügen Sie Untermodule für die beiden anderen Repositorys hinzu:

$ git submodule add -b main https://git.cloudmanager.adobe.com/ProgramName/projectA/ project-a
$ git submodule add -b main https://git.cloudmanager.adobe.com/ProgramName/projectB/ project-b

Dies führt zu einer .gitmodules-Datei, die wie folgt aussieht:

[submodule "project-a"]
    path = project-a
    url = https://git.cloudmanager.adobe.com/ProgramName/projectA/
    branch = main
[submodule "project-b"]
    path = project-b
    url = https://git.cloudmanager.adobe.com/ProgramName/projectB/
    branch = main

Weitere Informationen zu Git-Untermodulen finden Sie im Git-Referenzhandbuch.

Beschränkungen limitations

Beachten Sie bei der Verwendung von Git-Untermodulen Folgendes:

  • Die Git-URL muss sich genau an die oben beschriebene Syntax halten.
  • Betten Sie aus Sicherheitsgründen keine Anmeldeinformationen in diese URLs ein.
  • Es werden nur Untermodule im Stammverzeichnis der Verzweigung unterstützt.
  • Für bestimmte Git-Commits werden Git-Untermodulverweise gespeichert.
    • Wenn also Änderungen am Untermodul-Repository vorgenommen werden, muss der referenzierte Commit aktualisiert werden, z. B. mithilfe von git submodule update --remote.
  • Sofern nicht anders erforderlich, wird dringend empfohlen, „flache“ Untermodule zu verwenden.
    • Führen Sie dazu git config -f .gitmodules submodule.<submodule path>.shallow true für jedes Untermodul aus.

Unterstützung von Git-Untermodulen für private Repositorys private-repositories

Die Unterstützung für Git-Untermodule bei Verwendung von privaten Repositorys ist weitgehend dieselbe wie bei Verwendung von Adobe-Repositorys.

Nachdem Sie Ihre Datei pom.xml eingerichtet haben und die git submodule-Befehle ausgeführt werden, müssen Sie jedoch eine .gitmodules-Datei zum Stammverzeichnis des Aggregator-Repositorys hinzufügen, damit Cloud Manager die Einrichtung des Untermoduls erkennt.

.gitmodules-Datei

Aggregator

Einschränkungen und Empfehlungen limitations-recommendations-private-repos

Beachten Sie bei der Verwendung von Git-Untermodulen mit privaten Repositorys die folgenden Einschränkungen.

recommendation-more-help
c6cdc82b-cee9-48e0-a6ee-48149d5e72c3