go clean în Go

Șterge fișierele create de compilare și, cu opțiuni, cache-ul de build, de teste sau de module.

Sintaxă
go clean               # executabilele din directorul curent
go clean -n            # doar arată ce ar șterge
go clean -cache        # cache-ul de compilare
go clean -testcache    # rezultatele testelor din cache
go clean -modcache     # toate modulele descărcate

Ce face go clean

Fără opțiuni, go clean șterge executabilele și fișierele lăsate de go build în directorul pachetului. Opțiunile mai utile curăță cache-urile globale: -testcache uită rezultatele testelor (testele rulează din nou), -cache golește tot cache-ul de compilare (următorul build durează mai mult), iar -modcache șterge toate modulele descărcate (vor fi descărcate din nou la nevoie).

-n afișează comenzile fără să le execute, iar -x le afișează în timp ce le execută. Verifică întâi cu -n, mai ales înainte de -modcache.

Parametri

Parametru Descriere
-n / -x Doar afișează / afișează și execută comenzile de ștergere.
-cache Golește cache-ul de compilare (go env GOCACHE).
-testcache Șterge doar rezultatele salvate ale testelor.
-modcache Șterge modulele descărcate (go env GOMODCACHE).

Exemple

Exemplul 1: Ștergerea executabilelor

ls
go clean -n
go clean
ls

Rezultat în terminal

go.mod	magazin	magazin.exe	main.go	preturi
rm -f /home/ana/magazin/magazin
rm -f /home/ana/magazin/magazin.exe
go.mod	main.go	preturi

Exemplul 2: Forțarea testelor să ruleze din nou

go test ./preturi
go clean -testcache
go test ./preturi

Rezultat în terminal

ok  	exemplu.ro/magazin/preturi	(cached)
ok  	exemplu.ro/magazin/preturi	0.231s

Greșeli frecvente

  • go clean -modcache fără motiv: toate proiectele vor descărca din nou dependențele.
  • Ștergerea manuală a directorului cache cu rm -rf: fișierele din GOMODCACHE sunt protejate la scriere; go clean -modcache le șterge corect.

Comenzi înrudite

  • go build: Compilează pachetele și, pentru pachetul main, creează un executabil de sine stătător.
  • go test: Compilează și rulează testele (fișierele _test.go) și raportează ce a trecut și ce a picat.
  • go env: Afișează (și opțional salvează) variabilele de mediu și setările folosite de unealta go.