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.
MAKEUSEOF A NAP VIDEÓJA GÖRGÖZSEN A TARTALOM FOLYTATÁSHOZ
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
clean:
rm myapp
A fenti Makefile-ban két cél található: épít és tiszta .
hogyan állítsunk be gif -et háttérként
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.
make build
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.
touch Makefile
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
# Variables
GOCMD=go
GOBUILD=$(GOCMD) build
GOTEST=$(GOCMD) test
GOCLEAN=$(GOCMD) clean
# Targets
build:
$(GOBUILD) -o app .
test:
$(GOTEST) ./...
clean:
$(GOCLEAN)
rm -f app
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
# Variables
GOCMD=go
GOBUILD=$(GOCMD) build
GOTEST=$(GOCMD) test
GOCLEAN=$(GOCMD) clean
BINARY_NAME=app
TEST_FLAGS=-v
# Targets
build:
$(GOBUILD) -o $(BINARY_NAME) .
test:
$(GOTEST) $(TEST_FLAGS) ./...
clean:
$(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 -ban ben 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
# Variables
GOCMD=go
GOBUILD=$(GOCMD) build
GOTEST=$(GOCMD) test
GOCLEAN=$(GOCMD) clean
BINARY_NAME=app
TEST_FLAGS=-v
GOOS=linux
GOARCH=amd64
# Targets
build:
$(GOBUILD) -o $(BINARY_NAME) .
test:
$(GOTEST) $(TEST_FLAGS) ./...
clean:
$(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:
# Define variables
GOCMD = go
GOBUILD = $(GOCMD) build
BINARY_NAME = myprogram
# Default target
all: build
# Build target
build:
$(GOBUILD) -o $(BINARY_NAME)
# Clean target
clean:
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.
# Define variables
GOCMD = go
GOBUILD = $(GOCMD) build
GOGET = $(GOCMD) get
BINARY_NAME = myprogram
# Default target
all: build
# Build target
build:
$(GOBUILD) -o $(BINARY_NAME)
# Install dependencies
deps:
$(GOGET) -u
# Clean target
clean:
rm -f $(BINARY_NAME)
A Makefile-nek van egy adósság 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 a projekt függőségeinek telepítéséhez.
A Makefiles automatizálhatja a dokumentáció generálását és javíthatja a docs kódfolyamatként .
hogyan kell professzionálisan szerkeszteni a képeket a gimp -ben
Íme, hogyan teheti meg automatikusan generálhat dokumentációt Go-projektjeihez a godoc eszközzel és Makefile:
# Define variables
GODOC = godoc
DOCS_DIR = docs
# Default target
all: docs
# Generate documentation
docs:
$(GODOC) -html -dir . > $(DOCS_DIR)/index.html
# Clean target
clean:
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.