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.