Bazel/Golang:规则 'go_embed_data' 不包含已声明的提供商 'GoArchive'
Bazel/Golang: rule 'go_embed_data' doesn't contain declared provider '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",
],
)
我正在尝试为我的项目创建一个仅嵌入一组文件的 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",
],
)