如何解决Bazel / Golang:规则'go_embed_data'不包含声明的提供程序'GoArchive'
我正在尝试为仅嵌入文件集合的项目创建Bazel规则。嵌入规则如下:
go_embed_data(
name = "my_files_go",src = [
"embedded/src1","embedded/src2"
],package = "my_lib",var = "myFiles",)
然后在其中添加go_library规则:
go_library(
name = "library",srcs = [
"library.go",],importpath = "github.com/nickfelker/golang-app",deps = [
":my_files_go"
"//otherLib",)
但是,当我尝试构建它时,最终会收到一个晦涩的错误,我在其他地方找不到。
Error: <target //library:my_files_go> (rule 'go_embed_data') doesn't contain declared provider 'GoArchive'
ERROR: Analysis of target '//:binary' failed; build aborted: Analysis of target '//library:library' failed
我应该如何解决这个错误?
解决方法
为go_embed_data
创建的规则不依赖于go_library
规则。相反,应将其视为srcs
之一,
go_embed_data(
name = "my_files_go",src = [
"embedded/src1","embedded/src2"
],package = "my_lib",var = "myFiles",)
go_library(
name = "library",srcs = [
":my_files_go","library.go",],importpath = "github.com/nickfelker/golang-app",deps = [
"//otherLib",)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。