Palengvinkite savo gyvenimą automatizuodami pasikartojančias užduotis naudodami Makefiles.

Kuriant šiuolaikinę programinę įrangą, efektyvus kūrimo automatizavimas yra labai svarbus projekto sėkmei. Populiarus kūrimo automatizavimo įrankis Makefiles suteikia visų paketų kūrėjams glaustą ir galingą būdą valdyti sudėtingus kūrimo procesus.

Integruodami ir sąveikaudami su Makefiles su Go, galite automatizuoti pasikartojančias užduotis, supaprastinti kūrimo procesus ir padidinti našumą.

Makefiles supratimas

Norint efektyviai organizuoti ir automatizuoti projekto kūrimą, labai svarbu suprasti, kaip veikia Makefiles.

„Makefiles“ laikosi specifinės struktūros ir sintaksės, kuria apibrėžiamos projektų kūrimo ir priežiūros taisyklės. Iš esmės Makefile susideda iš taisyklių, nurodančių tikslus, priklausomybes ir komandas. Kiekviena taisyklė prasideda tikslu, po kurio nurodomos jo priklausomybės ir komandos, reikalingos taikiniui sukurti arba vykdyti.

Tikslai reiškia norimus Makefile išvesties failus arba veiksmus. Taikiniai gali būti failų pavadinimai arba etiketės, apibūdinančios užduotį. Pavyzdžiui, taikinys, pavadintas

švarus gali pašalinti nereikalingus failus, sukurtus kūrimo proceso metu.

Priklausomybės yra failai arba užduotys, reikalingos norint sukurti tikslą. Jei kokios nors priklausomybės bus pakeistos, Makefile iš naujo sukurs susijusius objektus, kad užtikrintų būtinų projekto dalių veikimą. Po tikslo nurodysite priklausomybes, atskirtas tarpais.

Komandos yra veiksmai arba apvalkalo komandos kuriuos reikia atlikti norint sukurti ar atlikti konkrečius tikslus. Komandos paprastai rašomos operacinės sistemos apvalkalo scenarijų kalba.

Kiekviena komanda turi prasidėti skirtuko simboliu, kad būtų atpažįstama.

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

švarus:
rm myapp

Aukščiau pateiktame Makefile yra du tikslai: statyti ir švarus.

The statyti tikslas priklauso nuo pagrindinis.go ir utils.go failus, o susijusi komanda paleidžiama „Go“ kompiliatoriuje, kad būtų sukurtas vykdomasis failas pavadinimu myapp.

Kita vertus, švarus tikslas pašalina myapp vykdomasis.

Norėdami sudaryti „Go“ kodą, eikite į darbo katalogą ir paleiskite padaryti statyti komandą.

padaryti statyti

Įrankis Make tvarkys kompiliavimo procesą, todėl galėsite sutelkti dėmesį į kodo rašymą.

Makefilų nustatymas jūsų Go projektams

Galite naudoti Makefiles kurdami ir kompiliuodami savo programas, atlikti kodo testus ir kokybės patikras bei nuolatiniam integravimui ir diegimui.

Vykdykite šią komandą, kad sukurtumėte savo projekto Makefile šakniniame kataloge. The Makefile bus įėjimo taškas nustatant jūsų kūrimo užduotis.

palieskite Makefile

Jūsų Makefile neturėtų turėti jokių plėtinių.

Sukūrę Makefile, į failą galite įrašyti komandas, priklausomybes ir tikslus savo projekto operacijoms.

Štai pavyzdys Makefile, kuris naudojamas kaip jūsų projekto kūrimo automatizavimo įrankis:

# Makefile

# Kintamieji
GOCMD = eiti
GOBUILD=$(GOCMD) statyti
GOTEST =$(GOCMD) bandymas
GOCLEAN=$(GOCMD) švarus

# Tikslai
statyti:
$(GOBUILD) -o programa.

testas:
$(GOTEST) ./...

švarus:
$(GOCLEAN)
rm -f programa

Galite tinkinti savo Makefile pagal konkrečius projekto poreikius.

Štai modifikuota Makefile versija, skirta papildomoms vėliavėlėms ir aplinkos kintamiesiems perduoti projekto bandymo ar kūrimo proceso metu:

# Makefile

# Kintamieji
GOCMD = eiti
GOBUILD=$(GOCMD) statyti
GOTEST =$(GOCMD) bandymas
GOCLEAN=$(GOCMD) švarus
BINARY_NAME=programa
TEST_FLAGS=-v

# Tikslai
statyti:
$(GOBUILD) -o $(BINARY_NAME) .

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

švarus:
$(GOCLEAN)
rm -f $(BINARY_NAME)

Šiame Makefile yra du nauji kintamieji, pavadinti BINARY_NAME ir TEST_FLAGS. The BINARY_NAME kintamasis nurodo sugeneruoto vykdomojo failo pavadinimą.

The TEST_FLAGS kintamasis leidžia nurodyti papildomas vėliavėles vykdant testus (šiuo atveju -v vėliavėlė įgalina išsamią išvestį bandymo vykdymo metu).

Makefiles taip pat suteikia paprastą būdą konfigūruoti projekto aplinkos kintamuosius ir vėliavėles.

Galite pridėti šias eilutes į savo Makefile, jei reikia nustatyti GOOS ir GOARCHAS kintamieji, kad sukurtumėte savo projektą konkrečiai operacinei sistemai ar architektūrai.

# Makefile

# Kintamieji
GOCMD = eiti
GOBUILD=$(GOCMD) statyti
GOTEST =$(GOCMD) bandymas
GOCLEAN=$(GOCMD) švarus
BINARY_NAME=programa
TEST_FLAGS=-v
GOOS = Linux
GOARCH=amd64

# Tikslai
statyti:
$(GOBUILD) -o $(BINARY_NAME) .

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

švarus:
$(GOCLEAN)
rm -f $(BINARY_NAME)

Atnaujintame Makefile yra du nauji kintamieji GOOS ir GOARCHAS aplinkos kintamieji, leidžiantys nurodyti tikslinę operacinę sistemą ir jūsų versijos architektūrą (šiuo atveju GOOS kintamasis nustatytas į Linux ir GOARCHAS į amd64 sukurti projektą „Linux“ x86-64 architektūra).

Nepamirškite pritaikyti šių kintamųjų pagal konkrečius projekto reikalavimus.

Galite kreiptis į Eikite į dokumentus palaikomų verčių sąrašui GOOS ir GOARCHAS jei reikia kurti kitai platformai.

Sukurkite automatiką naudodami „Makefiles“.

Makefiles taip pat patogu kurti kodą, generuoti dokumentus ir valdyti priklausomybes.

Naudodami Makefiles galite automatizuoti kompiliavimo laiką, sutaupydami laiko ir pastangų.

Čia yra „Makefile“, kuris sudaro „Go“ programą:

# Apibrėžkite kintamuosius
GOCMD = eiti
GOBUILD = $(GOCMD) statyti
BINARY_NAME = mano programa

# Numatytasis tikslas
viskas: statyti

# Sukurkite tikslą
statyti:
$(GOBUILD) -o $(BINARY_NAME)

# Švarus tikslas
švarus:
rm -f $(BINARY_NAME)

Makefile apibrėžia kintamuosius, tokius kaip GOCMD (komanda Eiti) ir GOBUILD (kūrimo komanda). The statyti tikslas iškviečia eik statyti komanda sukompiliuoti mūsų programą „Go“ ir sukurti dvejetainį failą nurodytu pavadinimu (mano programa tokiu atveju). The švarus target pašalina sugeneruotą dvejetainį failą iš projekto.

Galite naudoti Makefiles, norėdami automatizuoti priklausomybės diegimą ir nuolat atnaujinti savo projekto išorines priklausomybes.

# Apibrėžkite kintamuosius
GOCMD = eiti
GOBUILD = $(GOCMD) statyti
GOGET = $(GOCMD) gauti
BINARY_NAME = mano programa

# Numatytasis tikslas
viskas: statyti

# Sukurkite tikslą
statyti:
$(GOBUILD) -o $(BINARY_NAME)

# Įdiekite priklausomybes
deps:
$(GOGET) -u

# Švarus tikslas
švarus:
rm -f $(BINARY_NAME)

Makefile turi a deps taikinys, kuris naudoja eik paimk komanda, skirta įdiegti arba atnaujinti projekto priklausomybes. Galite bėgti padaryti deps kad įdiegtumėte projekto priklausomybes.

Makefiles gali automatizuoti dokumentų generavimą ir pagerinti jūsų dokumentus kaip kodo procesą.

Štai kaip galite automatiškai generuokite savo „Go“ projektų dokumentaciją naudodami „godoc“ įrankį ir Makefile:

# Apibrėžkite kintamuosius
GODOC = godokas
DOCS_DIR = dokumentai

# Numatytasis tikslas
visi: dok

# Sukurkite dokumentus
dokumentai:
$(GODOC) -html -vad. > $(DOCS_DIR)/index.html

# Švarus tikslas
švarus:
rm -rf $(DOCS_DIR)

Makefile, dok tikslas iškviečia godokas komandą su -html pažymėkite, kad sugeneruotumėte HTML dokumentaciją jūsų go kodui ir išsaugotumėte dokumentaciją dok katalogas.

Jūs paleisite padaryti dokumentus komandą, kad sukurtumėte naujausią „Go“ projekto dokumentaciją.

„Makefiles“ yra patogu dirbant su „Unix“ pagrįstomis operacinėmis sistemomis

Išnaudodami Makefiles lankstumą, galite apibrėžti pasirinktines kūrimo komandas ir atlikti sudėtingas užduotis per kelias minutes. Makefile taupo laiką ir užtikrina nuoseklumą bei atkuriamumą visose kūrimo aplinkose.

Kitas Makefiles privalumas yra suderinamumas su Unix sistemomis. „Make“ yra plačiai palaikoma „Unix“ operacinėse sistemose, įskaitant „Linux“ ir „MacOS“, naudojama programa, todėl ji yra nešiojamas ir patikimas įrankis kūrėjams.