Padariet savu dzīvi vieglāku, automatizējot atkārtotus uzdevumus, izmantojot Makefiles.
Mūsdienu programmatūras izstrādē efektīva būvniecības automatizācija ir ļoti svarīga projekta panākumiem. Makefiles, populārs veidošanas automatizācijas rīks, nodrošina visu skursteņu izstrādātājiem īsu un jaudīgu veidu, kā pārvaldīt sarežģītus veidošanas procesus.
Integrējot un sadarbojoties ar Makefiles ar Go, jūs varat automatizēt atkārtotus uzdevumus, racionalizēt veidošanas procesus un uzlabot produktivitāti.
Makefiles izpratne
Izpratne par to, kā darbojas Makefiles, ir ļoti svarīga, lai efektīvi organizētu un automatizētu projektu būvējumus.
Makefaili ievēro īpašu struktūru un sintakse, lai noteiktu projektu veidošanas un uzturēšanas noteikumus. Makefile pamatā ir noteikumi, kas norāda mērķus, atkarības un komandas. Katrs noteikums sākas ar mērķi, kam seko tā atkarības un komandas, kas nepieciešamas mērķa izveidošanai vai izpildei.
Mērķi apzīmē vēlamos Makefile izvades failus vai darbības. Mērķi var būt failu nosaukumi vai etiķetes, kas apraksta uzdevumu. Piemēram, mērķis ar nosaukumu
tīrs var noņemt nevajadzīgos failus, kas ģenerēti veidošanas procesa laikā.Atkarības ir faili vai uzdevumi, kas nepieciešami mērķa izveidošanai. Ja tiek mainītas kādas atkarības, Makefile pārbūvēs saistītos mērķus, lai nodrošinātu, ka nepieciešamās projekta daļas darbojas. Jūs norādīsit atkarības pēc mērķa, atdalot ar atstarpēm.
Komandas ir darbības vai čaulas komandas kas jāizpilda, lai izveidotu vai izpildītu konkrētus mērķus. Komandas parasti tiek rakstītas operētājsistēmas čaulas skriptu valodā.
Katrai komandai atpazīšanai jāsākas ar tabulēšanas rakstzīmi.
uzbūve: main.go utils.go
go build -o myapp main.go utils.go
tīrs:
rm myapp
Iepriekš minētajā Makefile ir divi mērķi: būvēt un tīrs.
The būvēt mērķis ir atkarīgs no galvenais.go un utils.go failus, un saistītā komanda tiek palaista kompilatorā Go, lai izveidotu izpildāmo failu ar nosaukumu myapp.
No otras puses, tīrs mērķis noņem myapp izpildāms.
Lai apkopotu savu Go kodu, dodieties uz darba direktoriju un palaidiet likt būvēt komandu.
likt būvēt
Rīks Make apstrādās kompilācijas procesu, ļaujot jums koncentrēties uz koda rakstīšanu.
Makefailu iestatīšana jūsu Go projektiem
Varat izmantot Makefiles, lai izveidotu un apkopotu savas programmas, veiktu koda testus un kvalitātes pārbaudes, kā arī nepārtrauktai integrācijai un izvietošanai.
Palaidiet šo komandu, lai savam projektam izveidotu Makefile saknes direktorijā. The Makefile kalpos kā ieejas punkts jūsu veidošanas uzdevumu definēšanai.
pieskarieties Makefile
Jūsu Makefile nedrīkst būt paplašinājumi.
Pēc Makefile izveides varat rakstīt komandas, atkarības un mērķus failā sava projekta darbībām.
Šeit ir Makefile piemērs, kas kalpo kā jūsu projekta izveides automatizācijas rīks:
# Makefile
# Mainīgie
GOCMD=iet
GOBUILD=$(GOCMD) būvēt
GOTEST=$(GOCMD) pārbaude
GOCLEAN=$(GOCMD) tīrs# Mērķi
būvēt:
$(GOBUILD) -o lietotne.pārbaude:
$(GOTEST) ./...
tīrs:
$(GOCLEAN)
rm -f lietotne
Varat pielāgot savu Makefile atbilstoši sava projekta īpašajām vajadzībām.
Šeit ir modificēta Makefile versija, kas paredzēta papildu karogu un vides mainīgo nodošanai projekta pārbaudes vai veidošanas procesa laikā:
# Makefile
# Mainīgie
GOCMD=iet
GOBUILD=$(GOCMD) būvēt
GOTEST=$(GOCMD) pārbaude
GOCLEAN=$(GOCMD) tīrs
BINARY_NAME=lietotne
TEST_FLAGS=-v# Mērķi
būvēt:
$(GOBUILD) -o $(BINARY_NAME) .pārbaude:
$(GOTEST)$(TEST_FAGS) ./...
tīrs:
$(GOCLEAN)
rm -f $(BINARY_NAME)
Šajā Makefile ir divi jauni mainīgie nosaukti BINARY_NAME un TEST_KAROGI. The BINARY_NAME mainīgais norāda ģenerētā izpildāmā faila nosaukumu.
The TEST_KAROGI mainīgais ļauj norādīt papildu karogus, veicot testus (šajā gadījumā -v karodziņš iespējo detalizētu izvadi testa izpildes laikā).
Makefiles nodrošina arī vienkāršu veidu, kā konfigurēt jūsu projekta vides mainīgos un karogus.
Varat pievienot šīs rindas savam Makefile, ja nepieciešams iestatīt GOOS un GOARCH mainīgie, lai izveidotu projektu noteiktai operētājsistēmai vai arhitektūrai.
# Makefile
# Mainīgie
GOCMD=iet
GOBUILD=$(GOCMD) būvēt
GOTEST=$(GOCMD) pārbaude
GOCLEAN=$(GOCMD) tīrs
BINARY_NAME=lietotne
TEST_FLAGS=-v
GOOS=linux
GOARCH=amd64# Mērķi
būvēt:
$(GOBUILD) -o $(BINARY_NAME) .pārbaude:
$(GOTEST)$(TEST_FAGS) ./...
tīrs:
$(GOCLEAN)
rm -f $(BINARY_NAME)
Atjauninātajā Makefile ir divi jauni mainīgie GOOS un GOARCH vides mainīgie, kas ļauj norādīt jūsu būvējuma mērķa operētājsistēmu un arhitektūru (šajā gadījumā GOOS mainīgais ir iestatīts uz Linux un GOARCH uz amd64 lai izveidotu projektu Linux uz x86-64 arhitektūra).
Atcerieties pielāgot šos mainīgos, pamatojoties uz jūsu projekta īpašajām prasībām.
Jūs varat atsaukties uz Dodieties uz dokumentāciju atbalstīto vērtību sarakstam GOOS un GOARCH ja jums ir jāveido citai platformai.
Veidojiet automatizāciju, izmantojot Makefiles
Makefaili ir noderīgi arī koda apkopošanai, dokumentācijas ģenerēšanai un atkarību pārvaldībai.
Izmantojot Makefiles, varat automatizēt kompilācijas laiku, ietaupot laiku un pūles.
Šeit ir Makefile, kas apkopo programmu Go:
# Definējiet mainīgos
GOCMD = aiziet
GOBUILD = $(GOCMD) būvēt
BINARY_NAME = mana programma# Noklusējuma mērķis
viss: būvēt# Izveidojiet mērķi
būvēt:
$(GOBUILD) -o $(BINARY_NAME)
# Tīrs mērķis
tīrs:
rm -f $(BINARY_NAME)
Makefile definē mainīgos, piemēram, GOCMD (komanda Go) un GOBUILD (veidošanas komanda). The būvēt mērķis izsauc ej būvēt komandu, lai apkopotu mūsu programmu Go un izveidotu bināro failu ar norādīto nosaukumu (mana programma šajā gadījumā). The tīrs target noņem ģenerēto bināro failu no projekta.
Varat izmantot Makefiles, lai automatizētu atkarības instalēšanu un atjauninātu sava projekta ārējās atkarības.
# Definējiet mainīgos
GOCMD = aiziet
GOBUILD = $(GOCMD) būvēt
GOGET = $(GOCMD) gūt
BINARY_NAME = mana programma# Noklusējuma mērķis
viss: būvēt# Izveidojiet mērķi
būvēt:
$(GOBUILD) -o $(BINARY_NAME)# Instalējiet atkarības
deps:
$(GOGET) -u
# Tīrs mērķis
tīrs:
rm -f $(BINARY_NAME)
Makefile ir a deps mērķis, kas izmanto iet saņemt komanda, lai instalētu vai atjauninātu projekta atkarības. Tu vari skriet taisīt deps lai instalētu sava projekta atkarības.
Makefiles var automatizēt dokumentācijas ģenerēšanu un uzlabot jūsu dokumenti kā koda process.
Lūk, kā jūs varat automātiski ģenerējiet dokumentāciju saviem Go projektiem, izmantojot godoc rīku un Makefile:
# Definējiet mainīgos
GODOC = godok
DOCS_DIR = dokumenti# Noklusējuma mērķis
visi: dokumenti# Izveidojiet dokumentāciju
dokumenti:
$(GODOC) -html -rež. > $(DOCS_DIR)/index.html
# Tīrs mērķis
tīrs:
rm -rf $(DOCS_DIR)
Makefile failā dok mērķis izsauc godok komandu ar -html karodziņš, lai ģenerētu HTML dokumentāciju savam go kodam un saglabātu dokumentāciju vietnē dok direktoriju.
Jūs palaidīsit izveidot dokumentus komandu, lai ģenerētu jaunāko dokumentāciju savam Go projektam.
Makefaili ir noderīgi darbam ar operētājsistēmām, kuru pamatā ir Unix
Izmantojot Makefiles elastību, jūs varat definēt pielāgotas veidošanas komandas un izpildīt sarežģītus uzdevumus dažu minūšu laikā. Makefile ietaupa laiku un nodrošina konsekvenci un reproducējamību būvniecības vidēs.
Vēl viena Makefiles priekšrocība ir tā saderība ar sistēmām, kuru pamatā ir Unix. Make ir plaši atbalstīta utilīta uz Unix balstītām operētājsistēmām, tostarp Linux un macOS, padarot to par pārnēsājamu un uzticamu rīku izstrādātājiem.