本文摘自php中文网,作者尚,侵删。

golang打包的方法:
1、使用go-bindata进行打包:
go-bindata 很简单,设计理念也不难理解。它的任务就是讲静态文件封装在一个 Go 语言的 Source Code 里面,然后提供一个统一的接口,你通过这个接口传入文件路径,它将给你返回对应路径的文件数据。
简单来说就是它可以把我们的静态文件生成 .go 文件,这样就可以编译成二进制文件,项目启动的时候再把这个 .go 文件再释放成静态文件。
使用示例:
打包整个静态目录,使用的时候释放
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # 目录结构
ConfigTest
├── asset
│ └── asset.go 静态文件编译之后的go文件
├── config # 静态文件目录
│ ├── rule.yaml
│ └── rule.json
├── cli # 运行目录
│ ├── config 执行main释放出来的静态文件
│ │ ├── rule.yaml
│ │ └── rule.json
│ └── main # main.go编译之后生成的二进制执行文件
└── main 程序目录
└── main.go # 源码
|
执行命令将静态文件打包成go文件
1 2 3 4 5 | go-bindata -o=./asset/asset.go -pkg=asset config/...
-o # 指定打包后生成的go文件路径
-pkg # 指定go文件的包名
config/... # 指定需要打包的静态文件路径
|
2、使用go.rice打包
go.rice 也支持打包静态文件到 go 文件中,但是行为和 go-bindata 很不相同。从使用角度,go.rice 其实是更便捷的静态文件操作库。打包静态文件反而是顺带的功能。
安装
1 | go get github.com/GeertJohan/go.rice/...
|
使用
go.rice 把一个目录认为是一个 rice.Box 操作
阅读剩余部分
相关阅读 >>
golang ip地址字符串整数string int相互转换
golang 可以开发 web 吗?
golang 有gc吗
golang-匿名函数
[go-linq]-go的.net linq式查询方法
go基础编程:数据类型
手撸golang 行为型设计模式 委派模式
go语言标准库之context
golang基础-http server
go学习一·常量constant, iota
更多相关阅读请进入《golang》频道 >>
老貘
一个与时俱进的Go编程知识库。
转载请注明出处:木庄网络博客 » golang如何打包