Olakšajte si život automatiziranjem ponavljajućih zadataka pomoću Makefilesa.

U modernom razvoju softvera, učinkovita automatizacija izrade ključna je za uspjeh projekta. Makefiles, popularan alat za automatizaciju izrade, pruža programerima svih nizova sažet i snažan način upravljanja složenim procesima izrade.

Integracijom i međuoperativnošću Makefilesa s Goom možete automatizirati zadatke koji se ponavljaju, pojednostaviti procese izrade i povećati produktivnost.

Razumijevanje Makefilesa

Razumijevanje načina rada Makefilesa ključno je za učinkovito organiziranje i automatiziranje izgradnje vašeg projekta.

Makefileovi slijede specifičnu strukturu i sintaksu za definiranje pravila za izgradnju i održavanje projekata. U osnovi, Makefile se sastoji od pravila koja određuju ciljeve, ovisnosti i naredbe. Svako pravilo počinje ciljem, nakon čega slijede njegove ovisnosti i naredbe potrebne za izgradnju ili izvršenje cilja.

Ciljevi predstavljaju željene izlazne datoteke ili akcije za Makefile. Ciljevi mogu biti nazivi datoteka ili oznake koje opisuju zadatak. Na primjer, cilj pod nazivom

instagram viewer
čist može ukloniti nepotrebne datoteke nastale tijekom procesa izgradnje.

Zavisnosti su datoteke ili zadaci potrebni za izgradnju cilja. Ako se bilo koja ovisnost izmijeni, Makefile će ponovno izgraditi povezane ciljeve kako bi osigurao da potrebni dijelovi projekta funkcioniraju. Ovisnosti ćete navesti nakon cilja, odvojene razmacima.

Naredbe su akcije ili naredbe ljuske koje je potrebno izvršiti za izgradnju ili izvođenje određenih ciljeva. Naredbe su obično napisane u skriptnom jeziku ljuske operativnog sustava.

Svaka naredba mora započeti znakom tab za prepoznavanje.

izgraditi: main.go utils.go
go build -o myapp main.go utils.go

čist:
rm moja aplikacija

U gornjem Makefileu postoje dva cilja: izgraditi i čist.

The izgraditi cilj ovisi o glavni.krenuti i utils.go datoteke, a pridružena naredba pokreće se na Go prevoditelju za izgradnju izvršne datoteke pod nazivom moja aplikacija.

S druge strane, čist meta uklanja moja aplikacija izvršni.

Da biste kompajlirali svoj Go kod, idite u radni direktorij i pokrenite napraviti graditi naredba.

napraviti graditi

Alat Make upravlja procesom kompilacije, omogućujući vam da se usredotočite na pisanje koda.

Postavljanje Makefile-ova za vaše Go projekte

Makefile možete koristiti za izradu i kompajliranje svojih programa, testiranje koda i provjeru kvalitete te za kontinuiranu integraciju i implementaciju.

Pokrenite ovu naredbu da biste stvorili Makefile za svoj projekt u korijenskom direktoriju. The Makefile poslužit će kao ulazna točka za definiranje vaših zadataka izgradnje.

dodirnite Makefile

Vaš Makefile ne bi trebao imati ekstenzije.

Nakon što stvorite Makefile, možete pisati naredbe, ovisnosti i ciljeve u datoteku za operacije vašeg projekta.

Evo primjera Makefilea koji služi kao alat za automatizaciju izrade za vaš projekt:

# Makefile

# Varijable
GOCMD=kreni
GOBUILD=$(GOCMD) izgraditi
GOTEST=$(GOCMD) test
GOCLEAN=$(GOCMD) čist

# Mete
izgraditi:
$(GOBUILD) -o aplikacija.

test:
$(GOTEST) ./...

čist:
$(GOCLEAN)
rm -f aplikacija

Možete prilagoditi svoj Makefile prema specifičnim potrebama vašeg projekta.

Evo modificirane verzije Makefilea za prosljeđivanje dodatnih zastavica i varijabli okruženja tijekom testiranja ili procesa izgradnje vašeg projekta:

# Makefile

# Varijable
GOCMD=kreni
GOBUILD=$(GOCMD) izgraditi
GOTEST=$(GOCMD) test
GOCLEAN=$(GOCMD) čist
BINARY_NAME=aplikacija
TEST_FLAGS=-v

# Mete
izgraditi:
$(GOBUILD) -o $(BINARY_NAME) .

test:
$(GOTEST)$(TEST_FLAGS) ./...

čist:
$(GOCLEAN)
rm -f $(BINARY_NAME)

U ovoj Makefileu postoje dvije imenovane nove varijable BINARY_NAME i TEST_ZASTAVICE. The BINARY_NAME varijabla navodi naziv generirane izvršne datoteke.

The TEST_ZASTAVICE varijabla vam omogućuje da navedete dodatne oznake prilikom izvođenja testova (u ovom slučaju, -v zastavica omogućuje verbose izlaz tijekom izvođenja testa).

Makefiles također pruža jednostavan način za konfiguriranje varijabli okoline i oznaka za vaš projekt.

Možete dodati ove retke u svoj Makefile ako trebate postaviti GOOS i GOARCH varijabli za izgradnju vašeg projekta za određeni operacijski sustav ili arhitekturu.

# Makefile

# Varijable
GOCMD=kreni
GOBUILD=$(GOCMD) izgraditi
GOTEST=$(GOCMD) test
GOCLEAN=$(GOCMD) čist
BINARY_NAME=aplikacija
TEST_FLAGS=-v
GOOS=linux
GOARCH=amd64

# Mete
izgraditi:
$(GOBUILD) -o $(BINARY_NAME) .

test:
$(GOTEST)$(TEST_FLAGS) ./...

čist:
$(GOCLEAN)
rm -f $(BINARY_NAME)

U ažuriranom Makefileu postoje dvije nove varijable za GOOS i GOARCH varijable okruženja koje vam omogućuju da navedete ciljni operativni sustav i arhitekturu za svoju verziju (u ovom slučaju, GOOS varijabla je postavljena na linux i GOARCH do amd64 izgraditi projekt za Linux na x86-64 arhitekturi).

Ne zaboravite prilagoditi ove varijable na temelju specifičnih zahtjeva vašeg projekta.

Možete se obratiti na Idi dokumentacija za popis podržanih vrijednosti za GOOS i GOARCH ako trebate graditi za drugu platformu.

Izgradite automatizaciju pomoću Makefilesa

Makefileovi su također zgodni za sastavljanje koda, generiranje dokumentacije i upravljanje ovisnostima.

S Makefilesom možete automatizirati vrijeme kompilacije, štedeći vrijeme i trud.

Evo Makefilea koji sastavlja Go program:

# Definirajte varijable
GOCMD = ići
GOBUILD = $(GOCMD) izgraditi
BINARY_NAME = mojprogram

# Zadani cilj
sve: graditi

# Izgradite cilj
izgraditi:
$(GOBUILD) -o $(BINARY_NAME)

# Čista meta
čist:
rm -f $(BINARY_NAME)

Makefile definira varijable poput GOCMD (naredba Idi) i GOBUILD (naredba za izgradnju). The izgraditi meta poziva na idi graditi naredba za kompajliranje našeg Go programa i proizvodnju binarne datoteke s navedenim imenom (mojprogram u ovom slučaju). The čist target uklanja generiranu binarnu datoteku iz projekta.

Možete koristiti Makefiles za automatizaciju instalacije ovisnosti i ažuriranje vanjskih ovisnosti vašeg projekta.

# Definirajte varijable
GOCMD = ići
GOBUILD = $(GOCMD) izgraditi
GOGET = $(GOCMD) dobiti
BINARY_NAME = mojprogram

# Zadani cilj
sve: graditi

# Izgradite cilj
izgraditi:
$(GOBUILD) -o $(BINARY_NAME)

# Instalirajte ovisnosti
deps:
$(GOGET) -u

# Čista meta
čist:
rm -f $(BINARY_NAME)

Makefile ima deps cilj koji koristi idi po naredba za instaliranje ili ažuriranje ovisnosti projekta. Možete trčati napraviti deps za instaliranje ovisnosti vašeg projekta.

Makefiles mogu automatizirati generiranje dokumentacije i poboljšati vašu dokumenti kao proces kodiranja.

Evo kako možete automatski generirajte dokumentaciju za svoje Go projekte pomoću alata godoc i Makefile:

# Definirajte varijable
GODOC = godoc
DOCS_DIR = dokumenti

# Zadani cilj
svi: dok

# Generirajte dokumentaciju
dokumenti:
$(GODOC) -html -dir. > $(DOCS_DIR)/index.html

# Čista meta
čist:
rm -rf $(DOCS_DIR)

U Makefileu, dokumenti meta poziva na godoc naredba s -html zastavicu za generiranje HTML dokumentacije za vaš go kod i sprema dokumentaciju u dokumenti imenik.

Vi ćete pokrenuti izraditi dokumente naredba za generiranje ažurirane dokumentacije za vaš Go projekt.

Makefile su zgodne za rad s operativnim sustavima koji se temelje na Unixu

Iskorištavanjem fleksibilnosti Makefilesa, možete definirati prilagođene naredbe za izgradnju i izvršiti složene zadatke u roku od nekoliko minuta. Makefile štedi vrijeme i osigurava dosljednost i ponovljivost u svim okruženjima izrade.

Još jedna prednost Makefilesa je njegova kompatibilnost sa sustavima baziranim na Unixu. Make je široko podržan uslužni program na operativnim sustavima baziranim na Unixu, uključujući Linux i macOS, što ga čini prijenosnim i pouzdanim alatom za programere.