go frame资源管理打包失败
最近有个需求,需要使用golang做一个小工具,然后我就想既然是小工具,那就把前后端放在一个二进制文件中。恰好使用的项目架构是go frame,它已经提供了这样的能力,但是没想到碰到了一鼻子灰。。。
1.首先我安装的gf工具的版本为
GoFrame CLI Tool v2.1.0, https://goframe.org
GoFrame Version: cannot find goframe requirement in go.mod
CLI Installed At: D:\Go\gopath\gf.exe
CLI Built Detail:
Go Version: go1.17.11
GF Version: v2.1.0
Git Commit: 2022-06-21 21:52:54 3b9e5c71bfd9f19e53dc4754e2170df1c534f0bb
Build Time: 2022-06-21 22:04:44
2.然后我init的工程,go.mod文件为
go 1.15
require github.com/gogf/gf/v2 v2.0.6
3.然后我就去参考了官方文档
文档中提到只要在配置文件中配置如下参数,然后使用gf build命令打包即可
gfcli:
build:
name: "my-application"
arch: "amd64"
system: "linux"
mod: "none"
cgo: 0
pack: "manifest/config,manifest/i18n,resource/public,resource/template"
version: ""
output: "./bin"
extra: ""
但是我按照操作执行后,怎么都访问不到我添加进去的配置文件
4.使用gf build --debug=true命令
使用gf build --debug=true命令执行编译过程中,发现打印了一条日志
build input: {Meta:{} File: Name:neuedu-cli Version: Arch:amd64 System:linux Output: Path:./temp Extra: Mod:none Cgo:false VarMap:map[] PackSrc: Pa
ckDst:internal/packed/build_pack_data.go ExitWhenError:false}
里面没有打印pack参数,反而打印了PackSrc,然后是没有赋值的状态.那么我需要设置的参数会不是其实是PackSrc?
5. 然后我修改配置文件如下
gfcli:
build:
name: "neuedu-cli"
arch: "amd64"
system: "linux"
mod: "none"
cgo: 0
PackSrc: "config"
extra: ""
6.可是仍然没有效果
于是我看了前面的几个文档,包括在build的过程中使用了debug打印日志
2022-08-15 15:32:33.381 [DEBU] build input: {Meta:{} File: Name:test-cli Version: Arch:amd64 System:linux Output: Path:./temp Extra: Mod:none Cgo:false VarMap:map[] PackSrc:config Pa
ckDst:internal/packed/build_pack_data.go ExitWhenError:false}
2022-08-15 15:32:33.385 gf pack config internal/packed/build_pack_data.go
2022-08-15 15:32:33.446 done!
2022-08-15 15:32:33.533 [DEBU] git log -1 --format="%cd %H" --date=format:"%Y-%m-%d %H:%M:%S"
2022-08-15 15:32:33.536 start building...
2022-08-15 15:32:33.536 [DEBU] go build -o ./temp/linux_amd64/neuedu-cli -ldflags "-X 'github.com/gogf/gf/v2/os/gbuild.builtInVarStr=eyJidWlsdEdpdCI6IiIsImJ1aWx0VGltZSI6IjIwMjItMDgtMTU
gMTU6MzI6MzMifQ=='" main.go
2022-08-15 15:32:33.539 go build -o ./temp/linux_amd64/neuedu-cli main.go
2022-08-15 15:32:36.141 [DEBU]
2022-08-15 15:32:36.142 done!
2022-08-15 15:32:36.143 remove the automatically generated resource go file: internal/packed/build_pack_data.go
我看到日志中提到了internal/packed/build_pack_data.go这个文件,然后编译后又给删除了,我就想他是不是需要引用这个文件
然后我又在main.go中添加了对这个包的引用
import (
_ "test_cli/api"
_ "test_cli/internal/packed"
"github.com/gogf/gf/v2/frame/g"
)
func main() {
s := g.Server()
s.SetPort(8199)
s.Run()
}
最后终于读取到了配置文件
总结起来就是需要注意两点:
1.需要添加配置文件,但是可能我的版本太高了,官方文档还没有更新,扫描添加文件的路径参数为PackSrc而不是pack
2.可能是我生成工程后调整目录过程中误删了对packed包的引用,当然这个就怪我自己了,没弄明白就修改了初始化的工程。。
最后我想说一句,go frame真的是一个非常强大实用的框架,但是希望文档能跟随正式版本一起发布。也祝愿像go frame的国产框架能发展壮大,有更多的大神参与进来。
go frame资源管理打包失败的更多相关文章
- maven打包失败 Cannot create resource output directory
转https://blog.csdn.net/wuyuanshun/article/details/103097447 maven clean后打包出现Cannot create resource o ...
- hbuilder ios 打包失败,无法导入p12证书的解决方案
问题描述: 在profile文件和私钥证书通过hbuilder ios 打包成功过的前提下,突然遇到打包失败的问题,问题详情是无法导入p12证书. 探索过程: 本着遇到问题先自省的态度,重复打包了几次 ...
- idea在maven打包时运行Test测试, 导致打包失败, 乱七八糟的错误
在maven打包时运行Test测试, 导致打包失败, 乱七八糟的错误 在maven projects中图标toggle'skip Tests' Mode //宏杰帮助 网上案例:https://blo ...
- java分模块项目在idea中使用maven打包失败(ps:maven常用到的命令)
一.分模块项目打包失败 情况:项目是分模块创建的,一些公共的方法是单独的一个模块common,其他模块依赖于此模块,poom依赖已经添加了,项目可以正常运行,但使用maven打包时出现了问题:找不到依 ...
- 17、uwp 打包失败记录
今天在打包时,总是打包失败, visual studio 报错误: 严重性 说明 代码 项目 文件 行 禁止显示状态错误 Error info: error 80080204: All app pac ...
- NGUI在5.3打包失败问题
一.NGUI版本 NGUI是很好用的Unity UI插件. 当前使用版本NGUI Next-Gen UI v3.9.7 (Feb 10, 2016)和NGUI Next-Gen UI 3.9.0两个版 ...
- 解决因生成javadoc失败导致Maven打包失败问题
方案就是设置javadoc生成失败时不导致整个打包失败: <plugin> <groupId>org.apache.maven.plugins</groupId> ...
- maven 打包失败 提示找不到jar的问题
服务打包的时候发现打包失败,查看原因大概是找不到jar包,但是本地仓库有.最终的解决的办法是使用maven 命令重新把jar包安装到本地仓库. 命令如下:mvn install:install-fil ...
- ionic在iOS中打包失败
在ios中打包失败,遇上这样的错误 解决办法,查看index.html的权限是否是只读状态,如果是,改成可读可写,再次打包重试,成功!
- Hbuild在线云ios打包失败,提示BuildConfigure Failed 31013 App Store 图标 未找到 解决方法
用 hbuild 打 IOS 包,打包失败,提示以下错误: manifest.plus.plugins.push.igexin;manifest.plus.plugins.oauth.weixin; ...
随机推荐
- 【Windows】更改Win10字体和Cmd字体
教程参考: https://www.windowszj.com/news/20837.html Win + R 打开运行窗口 输入 regedit 打开注册表编辑窗口 位置地址: 计算机\HKEY_L ...
- 【FastDFS】06 SpringBoot实现上传
创建SpringBoot工程: 再导入所需要的依赖: <dependency> <groupId>net.oschina.zcx7878</groupId> < ...
- 实现一个终端文本编辑器来学习golang语言
欢迎!这个系列的博文会带你使用golang语言来编写一个你自己的文本编辑器. 首先想说说写这个系列文章的动机. 其实作为校招生加入某头部互联网大厂一转眼已经快4年了.可以说该大厂算是比较早的用gola ...
- 使用GPU计算时,单精度float32类型和半精度float16类型运算效率的区别
最近在看资料时发现写着使用float16 半精度类型的数据计算速度要比float32的单精度类型数据计算要快,因为以前没有考虑过数据类型对计算速度的影响,只知道这个会影响最终的计算结果精度.于是,好奇 ...
- 关于英语的语言规范问题——美式英语、英式英语和中式英语(Chinese English)到底哪个才是正宗 —— 中式英语才是英语世界的未来
因为日常生成生活中总是会使用英语进行阅读.写作.学习和交流表达,由于小的时候是学传统正宗英语(英式英语),后来长大后因为美国实力强又开始学这个时候的正宗英语(美式英语),但是由于个人的能力问题(农村娃 ...
- 惠普暗影精灵2pro挑电池和电源适配器
自己几年前买的暗影2pro前几个月坏掉了,无法充电,而且偶发性掉电,经过长时间研究发现该款电脑存在挑电池和电源适配器的问题. 相关资料: https://www.chinafix.com/thread ...
- js 实现俄罗斯方块(三)
我又来啦!上一篇有点水,本篇我们来干货! 嘿嘿,首先我们先搭建游戏世界------网格 所有的操作包括左移右移下移旋转都是在这个网格中 既然是使用js来写当然跑不了html啦,实现网格最简单的 方法就 ...
- python分布式事务方案(一)tcc
python分布式事务方案(一)tcc 随着单体应用的拆分以及服务化的流行,现在分布式事务已经比较常见,分布式事务理论ACID.CAP.BASE等我就不说了,现在就直接说一下一种常见的解决方案-tcc ...
- OpenHarmony编译构建系统详解,从零搭建windows下开发环境,巨方便!
自从OpenHarmony更新了dev-tool,就可以在windows下构建鸿蒙(轻量型)系统了,这对于进行MCU开发的朋友们,学习鸿蒙OS会友好许多!我们可以更快的构建出系统,方便快速学习和验证. ...
- PHP中的Malformed UTF-8 characters错误解决
在PHP开发中,开发者经常会遇到Malformed UTF-8 characters错误.这个错误通常是由于代码中存在无效的UTF-8字符而引起的.本篇博客将为您介绍如何解决这个问题. 什么是UTF- ...