标签:dist TARGET demo makefile build go SWAGGER 模板
常见的指令:
- vendor
- dev
- start
- demo
- demo-start
- dist
- test
- clean
如果支持 docker,则增加下列三个执行:
- doker-build
- docker-run
- docker-upload
如果支持 swagger,则增加下列指令:
- swagger: $(SWAG) $(SWAGGER_OUTPUT)
总指令,包含下面两条指令 - $(SWAGGER_OUTPUT)
执行 swaggo 生成 swagger 文件 - (SWAG)
安装 swaggo
all 执行一般包含:dev demo dist docker-build
完整的实例:
PRJ = mgsc
BIN = yunju-api
MAIN = sys/api/main.go
HANDLER = sys/api/web/handlers.go
SWAG = $(shell go env GOPATH)/bin/swag
SWAGGER_DIR = swagger
SWAGGER_DEPS = $(MAIN) $(HANDLER)
SWAGGER_OUTPUT = $(SWAGGER_DIR)/docs.go $(SWAGGER_DIR)/swagger.json $(SWAGGER_DIR)/swagger.yaml
VERSION := $(shell cat version.txt)
DOCKER_PATH := r.addops.soft.360.cn/$(PRJ)/$(BIN)
DOCKER_PASSWD = Wy7Nv3Nn
.PHONY: vendor dist test clean swagger
all: dev demo dist docker-build
vendor:
git config --global url."ssh://git@git.corp.qihoo.net".insteadOf "https://git.corp.qihoo.net"
go mod vendor
# dev
dev: TARGET=./build/dev/$(USER).$(BIN)
dev: vendor $(SWAGGER_OUTPUT)
mkdir -p ./build/dev
go build -mod=vendor -gcflags=all='-N -l' -o $(TARGET) $(MAIN)
ls -l $(TARGET)
tools/init.sh dev
start: TARGET=./build/dev/$(USER).$(BIN)
start: dev
$(TARGET) --config conf/config.$(USER).yaml --env dev
# demo
demo: TARGET=./build/demo/demo.$(BIN)
demo: vendor $(SWAGGER_OUTPUT)
mkdir -p ./build/demo
go build -mod=vendor -gcflags=all='-N -l' -o $(TARGET) $(MAIN)
ls -l $(TARGET)
tools/init.sh demo
demo-start: TARGET=./build/demo/demo.$(BIN)
demo-start: demo
$(TARGET) --config conf/config.demo.yaml --env demo
# dist
dist: TARGET=./dist/$(BIN)
dist: vendor $(SWAGGER_OUTPUT)
mkdir -p dist
CGO_ENABLED=0 go build -mod=vendor -o $(TARGET) $(MAIN)
ls -l $(TARGET)
# docker
docker-build: dist
docker build . --network host -t $(DOCKER_PATH)
docker images | head -n2
docker-run:
docker run -it $(DOCKER_PATH)
docker-upload:
starkctl push -u $(PRJ) -p $(DOCKER_PASSWD) $(DOCKER_PATH)
# swagger
swagger: $(SWAG) $(SWAGGER_OUTPUT)
$(SWAGGER_OUTPUT): $(SWAGGER_DEPS)
$(SWAG) init --parseDependency --parseDepth 2 -d sys/api/ -o $(SWAGGER_DIR)
$(SWAG):
go get -u github.com/swaggo/swag/cmd/swag
go mod vendor
# test
test: vendor
go test $(TFLAG) ./tests/...
clean:
# find . -path "./build/*" ! -name ".gitignore" -delete
# find . -path "./dist/*" ! -name ".gitignore" -delete
rm -rfv build/* dist/* $(SWAGGER_OUTPUT)
标签:dist,TARGET,demo,makefile,build,go,SWAGGER,模板 来源: https://www.cnblogs.com/labs798/p/16101838.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。