Ajouter des dépendances externes
go get, gestion des versions et cache des modules
Ajouter des dépendances externes est une leçon Go Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Go Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Go Academy comprend 4 leçons au total.
Trouver des paquets
La principale ressource pour trouver des paquets Go est pkg.go.dev. Recherchez des paquets, consultez leur documentation et découvrez des exemples d’utilisation :
# Search and explore at https://pkg.go.dev
# Popular packages:
# github.com/gin-gonic/gin — HTTP framework
# github.com/stretchr/testify — test assertions
# golang.org/x/sync — extended sync primitives
# github.com/spf13/cobra — CLI framework
# github.com/jackc/pgx/v5 — PostgreSQL drivergo get : ajouter une dépendance
Utilisez go get pour ajouter une dépendance. La commande télécharge le module et met à jour go.mod et go.sum :
# Add latest version
go get github.com/stretchr/testify
# Add specific version
go get github.com/stretchr/testify@v1.8.4
# Add a pre-release version
go get github.com/foo/bar@main
# go get updates go.mod:
# require github.com/stretchr/testify v1.8.4Utiliser la dépendance
Après go get, importez et utilisez le paquet normalement :
package main
import (
"fmt"
"github.com/stretchr/testify/assert"
"testing"
)
func TestAdd(t *testing.T) {
assert.Equal(t, 4, 2+2, "math should work")
fmt.Println("assertion done")
_ = assert.New // suppress unused import
}go mod download
Téléchargez à l’avance toutes les dépendances répertoriées dans go.mod vers le cache des modules :
# Download all deps from go.mod
go mod download
# Download specific module
go mod download github.com/gin-gonic/gin@v1.9.1
# Useful for:
# - Docker layer caching (copy go.mod/go.sum first, then download)
# - Pre-warming CI cache
# - Offline development setupSélection de versions sémantique : MVS
Go utilise la Sélection de la version minimale (MVS) : il choisit toujours la version minimale requise qui satisfait toutes les dépendances. Aucune mise à niveau majeure automatique :
# If A requires gin v1.9.0
# and B requires gin v1.9.1
# MVS selects v1.9.1 (minimum that satisfies both)
# To upgrade ALL dependencies to latest minor/patch:
go get -u ./...
# To upgrade specific package:
go get -u github.com/gin-gonic/gingo mod why — Expliquer les dépendances
Découvrez pourquoi un module est requis pour votre compilation :
# Why is encoding/json needed?
go mod why encoding/json
# Why is golang.org/x/net needed?
go mod why golang.org/x/net
# Output shows the import chain:
# github.com/myapp
# github.com/gin-gonic/gin
# golang.org/x/netgo mod vendor pour des compilations reproductibles
La mise en paquet locale verrouille toutes les dépendances dans votre dépôt afin de rendre les compilations reproductibles :
# Vendor all deps
go mod vendor
# Build only from vendor (no network)
go build -mod=vendor ./...
# Dockerfile pattern:
# COPY go.mod go.sum ./
# RUN go mod download
# COPY . .
# RUN go build ...Modules privés avec GONOSUMCHECK et GOPRIVATE
Configurez Go pour les modules privés hébergés sur des serveurs internes :
# Tell Go not to use proxy/sumdb for private modules
export GOPRIVATE=github.com/mycompany/*
export GONOSUMCHECK=github.com/mycompany/*
# Or in go env:
go env -w GOPRIVATE=github.com/mycompany/*
# For enterprise Go proxy:
export GOPROXY=https://proxy.mycompany.com,directgo clean -modcache
Videz le cache des modules pour forcer le téléchargement de toutes les dépendances :
# Clear entire module cache
go clean -modcache
# Clear cache for specific version
go clean -modcache github.com/gin-gonic/gin@v1.9.1
# Useful when:
# - Cache is corrupted
# - Testing with a fresh environment
# - Disk space cleanupVérifier les vulnérabilités : govulncheck
L’analyseur officiel de vulnérabilités de Go vérifie si vos dépendances présentent des CVE connues :
# Install govulncheck
go install golang.org/x/vuln/cmd/govulncheck@latest
# Scan your module
govulncheck ./...
# Output example:
# Vulnerability #1: GO-2023-1234
# github.com/foo/bar v1.2.3
# Fixed in: v1.2.4
# Suggestion: go get github.com/foo/bar@v1.2.4Vérification rapide
Quelle commande ajoute une version précise d’une dépendance à votre module ?
Récapitulatif : dépendances externes
Résumé :
go get pkg@versionajoute des dépendances- Go utilise MVS : la version minimale qui satisfait toutes les exigences
go mod tidynettoie les dépendances inutiliséesgo mod vendorpermet des compilations hors ligne entièrement reproductibles- Utilisez
GOPRIVATEpour les modules privés - Exécutez
govulncheckpour trouver les vulnérabilités
Questions Fréquemment Posées
La leçon « Ajouter des dépendances externes » est-elle gratuite ?
Oui — le texte complet de « Ajouter des dépendances externes » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Go Academy, passe à CoddyKit PRO. Le cours Go Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Ajouter des dépendances externes » ?
go get, gestion des versions et cache des modules Tu pratiques Go Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Go Academy ?
Aucune expérience préalable n'est requise. Go Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Ajouter des dépendances externes » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Go Academy ?
Oui. Chaque leçon Go Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Packages : organiser le code Go
- Modules Go avec go mod
- Ajouter des dépendances externes
- Packages internes et espaces de travail