为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 go 1.16 中嵌入 go.mod & go.sum

如何在 go 1.16 中嵌入 go.mod & go.sum

Go
aluckdog 2022-09-05 15:32:44
我想在父模块中嵌入一个子模块目录,但golang提醒我pattern tpl/api_new/*: cannot embed file tpl/api_new/README.md: in different module我知道我可以删除go.mod和go.sum,然后在生成新项目时运行“go mod init && go get -u”。底部是文件树和嵌入变量,我还可以做些什么来嵌入go.mod和go.sum?谢谢~//go:embed tpl/api_new/*var apiNew embed.FS├─api_new│  │  .editorconfig│  │  .gitignore│  │  generate.go│  │  go.mod│  │  go.sum│  │  makefile│  │  README.md│  ││  ├─cmd│  │  └─app│  │          main.go│  ││  ├─config│  │      config-dev.toml│  │      config-live.toml│  │      config-local.toml│  │      config-prod.toml│  │      config-stress.toml│  │      config-trunk.toml│  ││  └─internal│      └─app│          ├─http│          │  │  server.go│          │  ││          │  └─example│          │          hello.go│          ││          ├─lib│          │  ├─err│          │  │      codecommon.go│          │  │      err.go│          │  ││          │  ├─pms│          │  │      init.go│          │  ││          │  └─util│          │          md5.go│          │          url.go│          ││          ├─model│          │  │  init.go│          │  ││          │  ├─grpc│          │  │  ├─roomaggregation│          │  │  │      aggregation.proto│          │  │  │      base.go│          │  │  ││          │  │  ├─roombase│          │  │  │      base.proto│          │  │  │      roombase.go│          │  │  ││          │  │  └─roomlist│          │  │          base.proto│          │  │          icon.go│          │  ││          │  ├─hrpc│          │  │  │  init.go│          │  │  ││          │  │  └─efs│          │  │          efs.go│          │  │          init.go│          │  │          option.go│          │  ││          │  └─redis│          │      ├─attachInfo│          │      │      index.go│          │      ││          │      ├─outing│          │      │      index.go│          │      ││          │      ├─roomcity│          │      │      roomcity.go│          │      ││          │      └─roomjump
查看完整描述

2 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

存储库中的每个模块都单独存储在模块缓存中。根据设计,子目录中存在文件会导致整个子树完全从外部模块中修剪出来。go.mod

如果您确实需要父目录中的模块可以访问 中的单个文件,则可以:tpl/api_new

  1. 删除内部文件和文件,将源文件全部放在同一个模块中,或者go.modgo.sum

  2. 从模块中的某个包(可能是内部)导出数据,并将该包导出到父目录模块中,以便以编程方式访问该数据。embed.FS…/tpl/api_newimport


查看完整回答
反对 回复 2022-09-05
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

我还可以做些什么来嵌入go.mod和go.sum?

不。


查看完整回答
反对 回复 2022-09-05
  • 2 回答
  • 0 关注
  • 148 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信