Olajšajte si življenje z avtomatizacijo ponavljajočih se opravil z uporabo Makefiles.
Pri sodobnem razvoju programske opreme je učinkovita avtomatizacija gradnje ključnega pomena za uspeh projekta. Makefiles, priljubljeno orodje za avtomatizacijo gradnje, ponuja razvijalcem vseh skladov jedrnat in zmogljiv način za upravljanje kompleksnih procesov gradnje.
Z integracijo in medsebojnim delovanjem datotek Makefiles z Go lahko avtomatizirate ponavljajoče se naloge, poenostavite procese gradnje in povečate produktivnost.
Razumevanje Makefiles
Razumevanje delovanja Makefiles je ključnega pomena za učinkovito organizacijo in avtomatizacijo gradenj vašega projekta.
Makefile sledijo določeni strukturi in sintaksi za definiranje pravil za gradnjo in vzdrževanje projektov. Makefile je v bistvu sestavljen iz pravil, ki določajo cilje, odvisnosti in ukaze. Vsako pravilo se začne s ciljem, ki mu sledijo njegove odvisnosti in ukazi, potrebni za izdelavo ali izvedbo cilja.
Cilji predstavljajo želene izhodne datoteke ali dejanja za Makefile. Cilji so lahko imena datotek ali oznake, ki opisujejo nalogo. Na primer, cilj z imenom
čisto lahko odstrani nepotrebne datoteke, ustvarjene med gradnjo.Odvisnosti so datoteke ali opravila, potrebna za gradnjo cilja. Če so katere koli odvisnosti spremenjene, bo Makefile znova zgradil povezane cilje, da zagotovi delovanje potrebnih delov projekta. Za ciljem boste določili odvisnosti, ločene s presledki.
Ukazi so dejanja oz lupinski ukazi ki potrebujejo izvedbo za izgradnjo ali izvedbo določenih ciljev. Ukazi so običajno napisani v skriptnem jeziku lupine operacijskega sistema.
Vsak ukaz se mora za prepoznavanje začeti s tabulatorjem.
zgraditi: main.go utils.go
go build -o myapp main.go utils.go
čisto:
rm moja aplikacija
V zgornji datoteki Makefile sta dva cilja: graditi in čisto.
The graditi cilj je odvisen od main.go in utils.go datoteke in povezani ukaz se izvaja v prevajalniku Go za izdelavo izvršljive datoteke z imenom myapp.
Po drugi strani pa je čisto tarča odstrani myapp izvedljiv.
Če želite prevesti svojo kodo Go, se pomaknite do delovnega imenika in zaženite narediti gradnjo ukaz.
narediti gradnjo
Orodje Make bo vodilo postopek prevajanja, kar vam bo omogočilo, da se osredotočite na pisanje kode.
Nastavitev datotek Makefile za vaše Go projekte
Makefile lahko uporabite za gradnjo in prevajanje svojih programov, izvajanje testov kode in preverjanje kakovosti ter za stalno integracijo in uvajanje.
Zaženite ta ukaz, da ustvarite Makefile za svoj projekt v korenskem imeniku. The Makefile bo služil kot vstopna točka za definiranje vaših gradbenih nalog.
dotaknite se Makefile
Vaš Makefile ne sme imeti nobenih razširitev.
Ko ustvarite datoteko Makefile, lahko v datoteko zapišete ukaze, odvisnosti in cilje za operacije vašega projekta.
Tukaj je primer Makefile, ki služi kot orodje za avtomatizacijo gradnje za vaš projekt:
# Makefile
# Spremenljivke
GOCMD=pojdi
GOBUILD=$(GOCMD) graditi
GOTEST=$(GOCMD) test
GOCLEAN=$(GOCMD) čisto# Tarče
zgraditi:
$(GOBUILD) -o aplikacija.test:
$(GOTEST) ./...
čisto:
$(GOCLEAN)
rm -f aplikacija
Makefile lahko prilagodite glede na posebne potrebe vašega projekta.
Tukaj je spremenjena različica datoteke Makefile za posredovanje dodatnih zastavic in spremenljivk okolja med postopkom testiranja ali gradnje vašega projekta:
# Makefile
# Spremenljivke
GOCMD=pojdi
GOBUILD=$(GOCMD) graditi
GOTEST=$(GOCMD) test
GOCLEAN=$(GOCMD) čisto
BINARY_NAME=aplikacija
TEST_FLAGS=-v# Tarče
zgraditi:
$(GOBUILD) -o $(BINARY_NAME) .test:
$(GOTEST)$(TEST_FLAGS) ./...
čisto:
$(GOCLEAN)
rm -f $(BINARY_NAME)
V tej datoteki Makefile sta poimenovani dve novi spremenljivki BINARY_NAME in TEST_FLAGS. The BINARY_NAME spremenljivka podaja ime ustvarjene izvršljive datoteke.
The TEST_FLAGS vam omogoča, da določite dodatne zastavice pri izvajanju testov (v tem primeru -v zastavica omogoča podrobni izpis med izvajanjem testa).
Makefiles ponuja tudi preprost način za konfiguriranje okoljskih spremenljivk in zastavic za vaš projekt.
Te vrstice lahko dodate v svojo datoteko Makefile, če morate nastaviti GOOS in GOARCH spremenljivke za izdelavo vašega projekta za določen operacijski sistem ali arhitekturo.
# Makefile
# Spremenljivke
GOCMD=pojdi
GOBUILD=$(GOCMD) graditi
GOTEST=$(GOCMD) test
GOCLEAN=$(GOCMD) čisto
BINARY_NAME=aplikacija
TEST_FLAGS=-v
GOOS=linux
GOARCH=amd64# Tarče
zgraditi:
$(GOBUILD) -o $(BINARY_NAME) .test:
$(GOTEST)$(TEST_FLAGS) ./...
čisto:
$(GOCLEAN)
rm -f $(BINARY_NAME)
V posodobljeni datoteki Makefile sta dve novi spremenljivki za GOOS in GOARCH spremenljivke okolja, ki vam omogočajo, da določite ciljni operacijski sistem in arhitekturo za svojo zgradbo (v tem primeru GOOS spremenljivka je nastavljena na linux in GOARCH do amd64 zgraditi projekt za Linux na arhitekturi x86-64).
Ne pozabite prilagoditi teh spremenljivk glede na posebne zahteve vašega projekta.
Lahko se sklicujete na Pojdi na dokumentacijo za seznam podprtih vrednosti za GOOS in GOARCH če morate graditi za drugo platformo.
Avtomatizacija gradnje z datotekami Makefiles
Datoteke Make so prav tako priročne za prevajanje kode, generiranje dokumentacije in upravljanje odvisnosti.
Z Makefiles lahko avtomatizirate čas prevajanja, s čimer prihranite čas in trud.
Tukaj je Makefile, ki prevede program Go:
# Definirajte spremenljivke
GOCMD = pojdi
GOBUILD = $(GOCMD) graditi
BINARY_NAME = mojprogram# Privzeti cilj
vse: graditi# Zgradite cilj
zgraditi:
$(GOBUILD) -o $(BINARY_NAME)
# Čista tarča
čisto:
rm -f $(BINARY_NAME)
Makefile definira spremenljivke, kot je GOCMD (ukaz Pojdi) in GOBUILD (ukaz za gradnjo). The graditi cilj prikliče pojdi graditi ukaz za prevajanje našega programa Go in izdelavo dvojiške datoteke z navedenim imenom (mojprogram v tem primeru). The čisto target odstrani ustvarjeno dvojiško datoteko iz projekta.
Makefile lahko uporabite za avtomatizacijo namestitve odvisnosti in posodabljanje zunanjih odvisnosti vašega projekta.
# Definirajte spremenljivke
GOCMD = pojdi
GOBUILD = $(GOCMD) graditi
GOGET = $(GOCMD) dobiti
BINARY_NAME = mojprogram# Privzeti cilj
vse: graditi# Zgradite cilj
zgraditi:
$(GOBUILD) -o $(BINARY_NAME)# Namestitev odvisnosti
deps:
$(GOGET) -u
# Čista tarča
čisto:
rm -f $(BINARY_NAME)
Makefile ima deps cilj, ki uporablja Pojdi iskat ukaz za namestitev ali posodobitev odvisnosti projekta. Lahko tečeš narediti deps za namestitev odvisnosti vašega projekta.
Makefiles lahko avtomatizirajo ustvarjanje dokumentacije in izboljšajo vaše dokumenti kot proces kode.
Evo, kako lahko samodejno ustvarite dokumentacijo za svoje projekte Go z orodjem godoc in Makefile:
# Definirajte spremenljivke
GODOC = godoc
DOCS_DIR = dokumenti# Privzeti cilj
vse: dok# Ustvarite dokumentacijo
dokumenti:
$(GODOC) -html -dir. > $(DOCS_DIR)/index.html
# Čista tarča
čisto:
rm -rf $(DOCS_DIR)
V datoteki Makefile je dokumenti cilj prikliče godoc ukaz z -html zastavico za ustvarjanje dokumentacije HTML za vašo kodo go in shrani dokumentacijo v dokumenti imenik.
Vodili boste narediti dokumente ukaz za ustvarjanje posodobljene dokumentacije za vaš projekt Go.
Datoteke Make so priročne za delo z operacijskimi sistemi, ki temeljijo na Unixu
Z izkoriščanjem prilagodljivosti datotek Makefiles lahko definirate ukaze za gradnjo po meri in izvedete zapletene naloge v nekaj minutah. Makefile prihrani čas in zagotavlja doslednost in ponovljivost v gradbenih okoljih.
Druga prednost Makefiles je njegova združljivost s sistemi, ki temeljijo na Unixu. Make je široko podprt pripomoček v operacijskih sistemih, ki temeljijo na Unixu, vključno z Linuxom in macOS, zaradi česar je prenosljivo in zanesljivo orodje za razvijalce.