Externe afhankelijkheden toevoegen
go get, versiebeheer en de modulecache
Externe afhankelijkheden toevoegen is een gratis Go Academy-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Go Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Go Academy bevat in totaal 4 lessen.
Pakketten vinden
De belangrijkste bron voor het vinden van Go-pakketten is pkg.go.dev. Zoek naar pakketten, lees documentatie en bekijk gebruiksvoorbeelden:
# 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: een afhankelijkheid toevoegen
Gebruik go get om een afhankelijkheid toe te voegen. De opdracht downloadt de module en werkt go.mod en go.sum bij:
# 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.4De afhankelijkheid gebruiken
Importeer en gebruik het pakket na go get op de gebruikelijke manier:
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
Download vooraf alle afhankelijkheden in go.mod naar de modulecache:
# 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 versieselectie: MVS
Go gebruikt Minimum Version Selection (MVS): het kiest altijd de minimaal vereiste versie die aan alle afhankelijkheden voldoet. Er worden geen automatische upgrades naar een nieuwe hoofdversie uitgevoerd:
# 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 — Afhankelijkheden verklaren
Zoek uit waarom een module in je compilatie vereist is:
# 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 voor reproduceerbare compilaties
Met vendoring leg je alle afhankelijkheden vast in je repository voor reproduceerbare compilaties:
# 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 ...Privémodules met GONOSUMCHECK en GOPRIVATE
Configureer Go voor privémodules die op interne servers worden gehost:
# 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
Wis de modulecache om het opnieuw downloaden van alle afhankelijkheden af te dwingen:
# 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 cleanupKwetsbaarheden controleren: govulncheck
De officiële scanner voor kwetsbaarheden in Go controleert je afhankelijkheden op bekende CVE's:
# 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.4Korte controle
Welke opdracht voegt een specifieke versie van een afhankelijkheid aan je module toe?
Samenvatting: externe afhankelijkheden
Samenvatting:
go get pkg@versionvoegt afhankelijkheden toe- Go gebruikt MVS: de minimale versie die aan alle vereisten voldoet
go mod tidyverwijdert ongebruikte afhankelijkhedengo mod vendoris bedoeld voor volledig reproduceerbare offline-compilaties- Gebruik
GOPRIVATEvoor privémodules - Voer
govulncheckuit om kwetsbaarheden te vinden
Leer Go met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 51
- Lessen
- 203
Veelgestelde vragen
Is de les “Externe afhankelijkheden toevoegen” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Go Academy, waaronder “Externe afhankelijkheden toevoegen”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Go Academy bevat in totaal 4 lessen.
Wat leer ik in “Externe afhankelijkheden toevoegen”?
go get, versiebeheer en de modulecache Je oefent met Go Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Go Academy te beginnen?
Ervaring vooraf is niet nodig. Go Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Externe afhankelijkheden toevoegen”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Go Academy?
Ja. Elke les over Go Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Packages: Go-code organiseren
- Go-modules met go mod
- Externe afhankelijkheden toevoegen
- Interne packages en workspaces