0Pricing
Go Academy · Leçon

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 driver

go 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.4

Utiliser 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 setup

Sé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/gin

go 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/net

go 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,direct

go 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 cleanup

Vé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.4

Vé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@version ajoute des dépendances
  • Go utilise MVS : la version minimale qui satisfait toutes les exigences
  • go mod tidy nettoie les dépendances inutilisées
  • go mod vendor permet des compilations hors ligne entièrement reproductibles
  • Utilisez GOPRIVATE pour les modules privés
  • Exécutez govulncheck pour 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

  1. Packages : organiser le code Go
  2. Modules Go avec go mod
  3. Ajouter des dépendances externes
  4. Packages internes et espaces de travail
← Retour à Go Academy