GO语言工程构建示例-mac和linux适用

新建Makefile,添加示例代码如下,

bash 复制代码
GO ?= go
BINARY_NAME=service-control-center
DEV_OUTPUT:=$(CURDIR)/$(BINARY_NAME)-dev
DEPLOY_DIR:=$(CURDIR)
DEPLOY_OUTPUT:=$(DEPLOY_DIR)/$(BINARY_NAME)
UNAME_S=$(shell uname -s)

BUILD_ENV=GOTRACEBACK=all
BUILD_FLAG=--ldflags "-X main.Version=`date +.%Y%m%d.%H%M%S` -X main.Hostname=`hostname` -X main.BuildType=$@"
export GO111MODULE=on
ifeq ($(UNAME_S), Linux)
    MD5_TOOL:=md5sum
endif

ifeq ($(UNAME_S), Darwin)
    MD5_TOOL:=md5 -r
endif

all: dev

dev:
    env $(BUILD_ENV) $(GO) build -race $(BUILD_FLAG) -o $(DEV_OUTPUT)

release:
    env GOOS=linux GOARCH=amd64 $(BUILD_ENV) $(GO) build $(BUILD_FLAG) -o $(DEPLOY_OUTPUT) && find . -type f -not -path '*/\.*' -exec $(MD5_TOOL) {} + > $(DEPLOY_DIR)/md5.release

clean:
    rm -rf $(BINARY_NAME)-dev
    rm -rf $(BINARY_NAME)
    rm -rf *.test
    rm -rf controllers/*.test

test: 
    go test -v -cover $(go list ./... | grep -v /test)

coverage:
    go test -v -cover $(go list ./... | grep -v /test)  > test.result

FORCE:

适用于在Mac 下开发dev,在linux下部署,示例

Mac

bash 复制代码
make dev

Linux

bash 复制代码
make
相关推荐
傻啦嘿哟30 分钟前
Python正则表达式:用“模式密码“解锁复杂字符串
linux·数据库·mysql
浪裡遊2 小时前
Linux常用指令
linux·运维·服务器·chrome·功能测试
SugarPPig2 小时前
PowerShell 查询及刷新环境变量
服务器
段ヤシ.3 小时前
银河麒麟(内核CentOS8)安装rbenv、ruby2.6.5和rails5.2.6
linux·centos·银河麒麟·rbenv·ruby2.6.5·rails 5.2.6
深夜情感老师5 小时前
centos离线安装ssh
linux·centos·ssh
我的作业错错错5 小时前
搭建私人网站
服务器·阿里云·私人网站
王景程5 小时前
如何测试短信接口
java·服务器·前端
微网兔子6 小时前
伺服器用什么语言开发呢?做什么用什么?
服务器·c++·后端·游戏
夸克App7 小时前
实现营销投放全流程自动化 超级汇川推出信息流智能投放产品“AI智投“
运维·人工智能·自动化
Rainbond云原生7 小时前
83k Star!n8n 让 AI 驱动的工作流自动化触手可及
运维·人工智能·自动化