shell将文件夹打成jar包_「Golang」将静态文件打包到二进制

前言:经常写java应用,大家都知道的是打成jar包,把静态文件都直接最后以一个xxx.jar包展现。在运行的时候也特别方便。那么go其实也有这样的操作。

dc53e5943be7df68d522f94a7c73ca72.png

了解目前开源的包

  • go-bindata
  • packcr
  • statik

目前是这三种

推荐statik进行开发

流程清晰明了,基本上看一眼就可以用。

其实核心思想都是将静态文件转换为.go文件,然后再通过import将包导入进去

开始使用

#安装 go get github.com/rakyll/statik#查看安装结果statik --help
  • 建立test文件夹,在文件夹内分别建立 main.go和a.json
#main.gopackage mainimport (_ "./statik"  //注意该包,该包非手动创建,由static命令进行创建"fmt""github.com/rakyll/statik/fs""io/ioutil""log")func main() {staticFile, err := fs.New()if err != nil {log.Fatal(err)}f, err := staticFile.Open("/a.json")if err != nil {log.Fatal(err)}defer f.Close()contents, err := ioutil.ReadAll(f)if err != nil {log.Fatal(err)}fmt.Println(string(contents))}
#a.json{"a": 1}
  • static命令,将静态文件生成.go的包文件
#执行static的静态文件转换命令static -src=./ -include=a.json# -src默认是public目录# -include 如果不写,默认目录全部文件# 执行完上述命令会在当前文件夹产生 static/static.go 此文件就是main.go的注释部分
  • 编译
#在当前命令行go buildls#执行可执行文件./test#结果{"a": 1}
  • 测试
#将可执行文件移动到其它地方mv test /xxxx#执行./test#结果{"a": 1}

到此就结束了。核心思想在推荐的时候描述了。

总结

快速解决自己想要的,之前使用packcr,这个包宣传的多么好,结果使用起来问题非常多,果断换之。

参考资料:

https://github.com/rakyll/statik

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值