golang如何打包


本文摘自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 操作

阅读剩余部分

相关阅读 >>

【gocn酷go推荐】go 类型转换神器 cast库

go的垃圾回收机制(gc)

百万年薪程序员必会的6种技能,你懂几种?

go-array

golang错误抛出的方法

golang reflect反射调用函数

关于golang中无法获取地址问题的解析

【博客大赛】浅析go切片与排序

golang定时任务解决方案

golang 类似php中 http_build_query 方法

更多相关阅读请进入《golang》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...

    正在狠努力加载,请稍候...