Könnyítse meg életét az ismétlődő feladatok automatizálásával a Makefiles segítségével.

A modern szoftverfejlesztésben a hatékony építési automatizálás kulcsfontosságú a projektek sikeréhez. A Makefiles, egy népszerű build-automatizálási eszköz, amely az összes verem fejlesztői számára tömör és hatékony módszert biztosít az összetett összeállítási folyamatok kezelésére.

A Makefiles Go-val való integrálásával és együttműködésével automatizálhatja az ismétlődő feladatokat, ésszerűsítheti az építési folyamatokat és növelheti a termelékenységet.

A Makefiles megértése

A Makefiles működésének megértése kulcsfontosságú a projektfelépítések hatékony szervezéséhez és automatizálásához.

A makefile-ek meghatározott struktúrát és szintaxist követnek a projektek felépítésére és karbantartására vonatkozó szabályok meghatározásához. A Makefile lényegében a célokat, függőségeket és parancsokat meghatározó szabályokból áll. Minden szabály egy céllal kezdődik, amelyet a függőségei és a cél létrehozásához vagy végrehajtásához szükséges parancsok követnek.

A célpontok a Makefile kívánt kimeneti fájljait vagy műveleteit jelentik. A célok lehetnek a feladatot leíró fájlnevek vagy címkék. Például egy nevű célpont tiszta eltávolíthatja a felépítési folyamat során keletkezett szükségtelen fájlokat.

A függőségek a cél létrehozásához szükséges fájlok vagy feladatok. Ha bármilyen függőséget módosítanak, a Makefile újraépíti a kapcsolódó célokat, hogy biztosítsa a projekt szükséges részei működését. A függőségeket a cél után adja meg, szóközökkel elválasztva.

A parancsok cselekvések ill shell parancsok amelyek végrehajtásra szorulnak konkrét célok létrehozásához vagy végrehajtásához. A parancsokat általában az operációs rendszer shell szkriptnyelvén írják.

A felismeréshez minden parancsnak tabulátor karakterrel kell kezdődnie.

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

tiszta:
rm myapp

A fenti Makefile-ban két cél található: épít és tiszta.

A épít a cél attól függ fő.go és utils.go fájlokat, és a kapcsolódó parancs fut a Go fordítón, hogy létrehozzon egy nevű végrehajtható fájlt myapp.

Másrészt a tiszta cél eltávolítja a myapp végrehajtható.

A Go kód összeállításához navigáljon a munkakönyvtárba, és futtassa a építeni parancs.

építeni

A Make eszköz kezeli a fordítási folyamatot, lehetővé téve, hogy a kódírásra összpontosítson.

Makefile-ok beállítása Go projektjeihez

A Makefiles segítségével elkészítheti és fordíthatja programjait, kódteszteket és minőségellenőrzéseket végezhet, valamint folyamatos integrációt és telepítést végezhet.

Futtassa ezt a parancsot egy Makefile létrehozásához a projekthez a gyökérkönyvtárban. A Makefile belépési pontként szolgál majd az összeállítási feladatok meghatározásához.

érintse meg a Makefile elemet

A Makefile nem tartalmazhat kiterjesztést.

A Makefile létrehozása után parancsokat, függőségeket és célokat írhat a fájlba a projekt műveleteihez.

Íme egy példa a Makefile-re, amely építkezési automatizálási eszközként szolgál a projekthez:

# Makefile

# Változók
GOCMD=megy
GOBUILD=$(GOCMD) épít
GOTEST=$(GOCMD) teszt
GOCLEAN=$(GOCMD) tiszta

# Célok
épít:
$(GOBUILD) -o alkalmazás.

teszt:
$(GOTEST) ./...

tiszta:
$(GOCLEAN)
rm -f alkalmazás

Testreszabhatja Makefile-jét projektje egyedi igényei szerint.

Íme a Makefile egy módosított verziója, amely további jelzők és környezeti változók átadására szolgál a projekt teszt- vagy összeállítási folyamata során:

# Makefile

# Változók
GOCMD=megy
GOBUILD=$(GOCMD) épít
GOTEST=$(GOCMD) teszt
GOCLEAN=$(GOCMD) tiszta
BINARY_NAME=alkalmazás
TEST_FLAGS=-v

# Célok
épít:
$(GOBUILD) -o $(BINARY_NAME) .

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

tiszta:
$(GOCLEAN)
rm -f $(BINARY_NAME)

Ebben a Makefile-ban két új változó található BINARY_NAME és TEST_FLAGS. A BINARY_NAME változó adja meg a generált futtatható fájl nevét.

A TEST_FLAGS változó lehetővé teszi további jelzők megadását tesztek futtatásakor (ebben az esetben a -v jelző lehetővé teszi a részletes kimenetet a tesztvégrehajtás során).

A Makefiles emellett egyszerű módot biztosít a környezeti változók és jelzők konfigurálására a projekthez.

Ezeket a sorokat hozzáadhatja a Makefile-hoz, ha be kell állítania a GOOS és GOARCH változókat a projekt egy adott operációs rendszerhez vagy architektúrához való felépítéséhez.

# Makefile

# Változók
GOCMD=megy
GOBUILD=$(GOCMD) épít
GOTEST=$(GOCMD) teszt
GOCLEAN=$(GOCMD) tiszta
BINARY_NAME=alkalmazás
TEST_FLAGS=-v
GOOS=linux
GOARCH=amd64

# Célok
épít:
$(GOBUILD) -o $(BINARY_NAME) .

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

tiszta:
$(GOCLEAN)
rm -f $(BINARY_NAME)

A frissített Makefile-ban két új változó található a GOOS és GOARCH környezeti változók, amelyek lehetővé teszik a cél operációs rendszer és architektúra megadását a buildhez (ebben az esetben a GOOS változó értékre van állítva Linux és GOARCH nak nek amd64 hogy a projektet Linuxra x86-64 architektúrára építsék).

Ne felejtse el adaptálni ezeket a változókat a projekt specifikus követelményeihez.

Hivatkozhat a Menj a dokumentációhoz a támogatott értékek listájához GOOS és GOARCH ha más platformra kell építeni.

Építsen automatizálást Makefiles segítségével

A makefile-ok hasznosak kódfordításhoz, dokumentációk generálásához és függőségek kezeléséhez is.

A Makefiles segítségével automatizálhatja a fordítási időt, így időt és erőfeszítést takaríthat meg.

Itt van egy Makefile, amely egy Go programot fordít:

# Változók meghatározása
GOCMD = menj
GOBUILD = $(GOCMD) épít
BINARY_NAME = saját program

# Alapértelmezett cél
mind: épít

# Építsd meg a célt
épít:
$(GOBUILD) -o $(BINARY_NAME)

# Tiszta cél
tiszta:
rm -f $(BINARY_NAME)

A Makefile olyan változókat határoz meg, mint a GOCMD (a Menj parancs) és GOBUILD (a build parancs). A épít a cél meghívja a menj építeni parancsot a Go program lefordításához és a megadott névvel (az én programom ebben az esetben). A tiszta A target eltávolítja a generált binárist a projektből.

A Makefiles segítségével automatizálhatja a függőségek telepítését, és frissítheti projektje külső függőségeit.

# Változók meghatározása
GOCMD = menj
GOBUILD = $(GOCMD) épít
GOGET = $(GOCMD) kap
BINARY_NAME = saját program

# Alapértelmezett cél
mind: épít

# Építsd meg a célt
épít:
$(GOBUILD) -o $(BINARY_NAME)

# Függőségek telepítése
deps:
$(GOGET) -u

# Tiszta cél
tiszta:
rm -f $(BINARY_NAME)

A Makefile-nek van egy deps cél, amely a szerezz parancs a projektfüggőségek telepítéséhez vagy frissítéséhez. Futhatsz depeket készíteni hogy telepítse a projekt függőségeit.

A Makefiles automatizálhatja a dokumentáció generálását és javíthatja a docs kódfolyamatként.

Íme, hogyan teheti meg automatikusan generálhat dokumentációt Go-projektjeihez a godoc eszközzel és Makefile:

# Változók meghatározása
GODOC = godok
DOCS_DIR = dokumentumok

# Alapértelmezett cél
mind: dok

# Dokumentáció generálása
dokumentumok:
$(GODOC) -html -dir. > $(DOCS_DIR)/index.html

# Tiszta cél
tiszta:
rm -rf $(DOCS_DIR)

A Makefile-ban a dok a cél meghívja a goddoc parancsot a -html jelölje meg a HTML-dokumentáció létrehozásához a go kódhoz, és elmenti a dokumentációt a dok Könyvtár.

Te fogod futtatni a készíts dokumentumokat parancsot a Go projekt naprakész dokumentációjának generálásához.

A Makefile-ok hasznosak Unix-alapú operációs rendszerekkel való munkavégzéshez

A Makefiles rugalmasságának kihasználásával egyedi összeállítási parancsokat definiálhat, és néhány percen belül összetett feladatokat hajthat végre. A Makefile időt takarít meg, és biztosítja a konzisztenciát és a reprodukálhatóságot az építési környezetekben.

A Makefiles másik előnye a Unix alapú rendszerekkel való kompatibilitása. A Make egy széles körben támogatott segédprogram Unix-alapú operációs rendszereken, beleértve a Linuxot és a macOS-t is, így hordozható és megbízható eszköz a fejlesztők számára.