Maison >développement back-end >Golang >Comment gérer les dépendances du référentiel privé avec les modules Go ?

Comment gérer les dépendances du référentiel privé avec les modules Go ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-08 17:24:11219parcourir

How Do I Manage Private Repository Dependencies with Go Modules?

Modules Go, référentiels privés et GOPATH

Comprendre les dépendances des modules privés

Dans les modules Go, chemins "sans point" comme "mycompany/mylib" sont réservés au référentiel standard. Cela implique que pour les modules accessibles via des référentiels privés, les noms de domaine et les projets doivent être liés.

Gestion des dépendances des modules tout ou rien

Les modules Go appliquent un système "tout ou rien" "-ou-rien". Lors de l'utilisation de modules, toutes les dépendances doivent être résolues à l'aide du système de modules (aller chercher). Le GOPATH devient redondant sauf en tant que cache pour les modules téléchargés.

Conséquences de l'itération dans des référentiels privés

Dans le passé, les développeurs pouvaient développer des bibliothèques localement avant de valider les modifications. Avec les modules, vous avez deux options :

  1. Accepter la dépendance à distance et itérer : Cela implique de pousser et d'extraire les modifications du référentiel distant, ce qui nécessite potentiellement une connectivité Internet constante.
  2. Fusionner dans un seul référentiel Git :Cette approche combine toutes les bibliothèques dans un seul référentiel, éliminant ainsi le besoin de dépendances.

Étude de cas avec code simplifié

Votre exemple de code représente un problème courant lors de la transition des modules dep vers Go. Lorsque GO111MODULE est défini sur "on", l'erreur "Impossible de trouver le module pour le chemin mycompany/mylib" se produit. En effet, mylib n'est pas encore un module.

Solution

Pour utiliser un dépôt privé pour mylib comme dépendance dans myprogram :

  1. Créez un référentiel privé pour mylib.
  2. Utilisez GOPRIVATE pour spécifier que mylib est un référentiel privé référentiel.
  3. Importez mylib en utilisant go mod edit -replace mycompany/mylib=git.example.com/mycompany/mylib.
  4. Poussez les modifications vers le référentiel privé.

Considérations supplémentaires

  • GOPROXY peut être utilisé pour le développement hors ligne avec des modules privés.
  • La solution de contournement GITHUB_TOKEN peut être appliquée à des fins d'authentification.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn