Externe Abhängigkeiten hinzufügen
go get, Versionierung und der Modul-Cache
Externe Abhängigkeiten hinzufügen ist eine kostenlose Go Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Go Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Go Academy-Kurs umfasst insgesamt 4 Lektionen.
Packages finden
Die wichtigste Ressource zum Finden von Go-Packages ist pkg.go.dev. Suchen Sie nach Packages, lesen Sie die Dokumentation und sehen Sie sich Verwendungsbeispiele an:
# 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: Eine Abhängigkeit hinzufügen
Verwenden Sie go get, um eine Abhängigkeit hinzuzufügen. Der Befehl lädt das Modul herunter und aktualisiert go.mod und 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.4Die Abhängigkeit verwenden
Importieren und verwenden Sie das Package nach go get wie gewohnt:
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
Laden Sie alle in go.mod aufgeführten Abhängigkeiten vorab in den Modul-Cache herunter:
# 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 setupSemantische Versionsauswahl: MVS
Go verwendet Minimum Version Selection (MVS): Es wählt immer die niedrigste erforderliche Version, die alle Abhängigkeiten erfüllt. Es gibt keine automatischen Upgrades auf neue Hauptversionen:
# 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 — Abhängigkeiten erklären
Finden Sie heraus, warum ein Modul in Ihrem Build benötigt wird:
# 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 für reproduzierbare Builds
Durch Vendoring werden alle Abhängigkeiten für reproduzierbare Builds in Ihrem Repository festgeschrieben:
# 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 ...Private Module mit GONOSUMCHECK und GOPRIVATE
Konfigurieren Sie Go für private Module, die auf internen Servern gehostet werden:
# 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
Leeren Sie den Modul-Cache, um das erneute Herunterladen aller Abhängigkeiten zu erzwingen:
# 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 cleanupSicherheitslücken prüfen: govulncheck
Der offizielle Go-Scanner für Sicherheitslücken prüft Ihre Abhängigkeiten auf bekannte CVEs:
# 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.4Wissenscheck
Welcher Befehl fügt Ihrem Modul eine bestimmte Version einer Abhängigkeit hinzu?
Zusammenfassung: Externe Abhängigkeiten
Zusammenfassung:
go get pkg@versionfügt Abhängigkeiten hinzu- Go verwendet MVS — die niedrigste Version, die alle Anforderungen erfüllt
go mod tidyentfernt nicht verwendete Abhängigkeitengo mod vendorfür vollständig reproduzierbare Offline-Builds- Verwenden Sie
GOPRIVATEfür private Module - Führen Sie
govulncheckaus, um Sicherheitslücken zu finden
Häufig gestellte Fragen
Ist die Lektion „Externe Abhängigkeiten hinzufügen“ kostenlos?
Ja — der vollständige Text von „Externe Abhängigkeiten hinzufügen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Go Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Go Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Externe Abhängigkeiten hinzufügen“?
go get, Versionierung und der Modul-Cache Du übst Go Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Go Academy zu starten?
Keine Vorkenntnisse erforderlich. Go Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Externe Abhängigkeiten hinzufügen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Go Academy-Lektion Code schreiben und ausführen?
Ja. Jede Go Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Packages: Go-Code organisieren
- Go-Module mit go mod
- Externe Abhängigkeiten hinzufügen
- Interne Packages und Workspaces