您的位置:首页 > 其它

gitea 源码阅读笔记 002 生成无依赖单文件可执行包

2017-11-23 01:13 337 查看

gitea bindata static

gitea 可以通过
make generate
生成一个单文件可执行程序,

该文件不需要任何其它依赖,直接可以单独执行。

对于用户的安装、升级和生成docker image等都会方便很多。

makefile

gitea安装指南有说:

TAGS="bindata" make generate build

那么,上面这句执行后,发生了什么?

强制指定了
TAGS
变量 makefile里会自动读取

执行任务

generate
任务

build
任务

generate 任务

从makefile看

GO ?= go

## 使用go list 列出目录中所有导入包
## 过滤掉所有包含 /vendor/ 目录的结果
## 过滤掉 code.gitea.io/gitea/integrations
PACKAGES ?= $(filter-out code.gitea.io/gitea/integrations,$(shell $(GO) list ./... | grep -v /vendor/))

.PHONY: generate
generate:
@hash go-bindata > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
$(GO) get -u github.com/jteeuwen/go-bindata/...; \
fi
$(GO) generate $(PACKAGES)

通过注释,基本已经清楚generate需要做的动作了。

列出所有导入包

过滤掉不需要的路径

使用
go generate
指令执行go源码文件内设定的指令

背景知识

makefile

hash 指令

text functions

go build tags

go generate
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐