0Pricing
Go Academy · Lektion

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 driver

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

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

Semantische 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/gin

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

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

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

Sicherheitslü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.4

Wissenscheck

Welcher Befehl fügt Ihrem Modul eine bestimmte Version einer Abhängigkeit hinzu?

Zusammenfassung: Externe Abhängigkeiten

Zusammenfassung:

  • go get pkg@version fügt Abhängigkeiten hinzu
  • Go verwendet MVS — die niedrigste Version, die alle Anforderungen erfüllt
  • go mod tidy entfernt nicht verwendete Abhängigkeiten
  • go mod vendor für vollständig reproduzierbare Offline-Builds
  • Verwenden Sie GOPRIVATE für private Module
  • Führen Sie govulncheck aus, 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

  1. Packages: Go-Code organisieren
  2. Go-Module mit go mod
  3. Externe Abhängigkeiten hinzufügen
  4. Interne Packages und Workspaces
← Zurück zu Go Academy