Go-Module mit go mod
Module initialisieren, go.mod und go.sum
Go-Module mit go mod ist eine kostenlose Go Academy-Lektion auf CoddyKit. Dies ist Lektion 2 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.
Was ist ein Go-Modul?
Ein Modul ist eine Sammlung von Go-Packages mit einer go.mod-Datei im Stammverzeichnis. Module sind in Go die Einheit für Codeverteilung und Versionierung:
// go.mod — created with: go mod init github.com/myuser/myapp
module github.com/myuser/myapp
go 1.21
require (
github.com/gin-gonic/gin v1.9.1
golang.org/x/sync v0.5.0
)go mod init
Initialisieren Sie ein neues Modul mit go mod init:
# In project directory:
go mod init github.com/myuser/myapp
# This creates go.mod:
# module github.com/myuser/myapp
# go 1.21
# The module path is the canonical import path prefix
# for all packages in this modulego.sum — Integritätsprüfung
go.sum speichert kryptografische Prüfsummen aller Abhängigkeiten. Bearbeiten Sie die Datei niemals manuell — Go-Befehle verwalten sie:
# go.sum example entries:
github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg=
github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU=
# Commit go.sum to version control — it ensures reproducible buildsgo get — Abhängigkeiten hinzufügen
Verwenden Sie go get, um Abhängigkeiten hinzuzufügen oder zu aktualisieren. Der Befehl aktualisiert sowohl go.mod als auch go.sum:
# Add latest version
go get github.com/pkg/errors
# Add specific version
go get github.com/pkg/errors@v0.9.1
# Upgrade to latest patch release
go get -u=patch github.com/pkg/errors
# Remove unused dependency from go.mod
go mod tidygo mod tidy
go mod tidy fügt fehlende Anforderungen hinzu und entfernt nicht verwendete aus go.mod und go.sum. Führen Sie den Befehl nach dem Bearbeiten von Importen aus:
# After adding/removing imports:
go mod tidy
# What it does:
# 1. Adds any missing module requirements
# 2. Removes requirements for packages no longer imported
# 3. Updates go.sum with needed checksums
# 4. Best practice: run before committingModulversionierung mit Semver
Go-Module verwenden semantische Versionierung. Für Hauptversionen ab 2 ist ein Suffix im Pfad erforderlich:
// v1: github.com/pkg/errors
import "github.com/pkg/errors"
// v2+: module path includes major version
import "github.com/foo/bar/v2"
import "github.com/foo/bar/v3"
// go.mod:
// require github.com/foo/bar/v2 v2.3.1go mod vendor
Der Vendor-Modus kopiert alle Abhängigkeiten in ein lokales vendor/-Verzeichnis, damit Builds offline möglich sind:
# Copy deps to vendor/
go mod vendor
# Build using vendor/
go build -mod=vendor ./...
# Useful for:
# - Air-gapped environments
# - Reproducible CI builds without network
# - Code review of dependenciesreplace-Direktive
Die replace-Direktive in go.mod ersetzt ein Modul durch einen lokalen Pfad oder eine andere Version — nützlich für die lokale Entwicklung:
module github.com/myapp
go 1.21
require github.com/mylib v1.0.0
// Use local fork during development:
replace github.com/mylib => ../mylib
// Replace with a specific version:
// replace github.com/mylib v1.0.0 => github.com/myfork v1.0.0go env GOPATH und GOMODCACHE
Wichtige Umgebungsvariablen für Go-Module:
# Module cache location (default: ~/go/pkg/mod)
go env GOMODCACHE
# Proxy for downloading modules (default: proxy.golang.org)
go env GOPROXY
# Sum database for checksum verification
go env GONOSUMCHECK
# Disable module proxy (use direct)
export GOPROXY=directgo list und go mod graph
Untersuchen Sie Modulabhängigkeiten mit diesen Befehlen:
# List all modules in the build
go list -m all
# Show module dependency graph
go mod graph
# Find which module provides a package
go list -m -json all | grep -A5 gin
# Check for available updates
go list -m -u allWissenscheck
Was bewirkt go mod tidy?
Zusammenfassung: Go-Module
Wichtige Konzepte zu Modulen:
go mod initerstellt das Modul mit einergo.mod-Dateigo.modenthält Modulnamen, Go-Version und Abhängigkeitengo.sumenthält Prüfsummen — committen Sie die Dateigo getfügt Abhängigkeiten hinzu oder aktualisiert sie,go mod tidybereinigt siereplacefür lokale Entwicklungs-Forks- Hauptversionen ab v2 benötigen ein Suffix im Pfad
Häufig gestellte Fragen
Ist die Lektion „Go-Module mit go mod“ kostenlos?
Ja — der vollständige Text von „Go-Module mit go mod“ 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 „Go-Module mit go mod“?
Module initialisieren, go.mod und go.sum 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 2 von 4.
Wie lange dauert die Lektion „Go-Module mit go mod“?
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