瞪羚没有创建正确的依赖关系?

杰耶

考虑一个仓库repo,github.com/myacct/sandboxji目录位于顶部:

$ ls -CFR
.:
BUILD.bazel  WORKSPACE  one/

./one:
oneonone.go

$ cat BUILD.bazel
load("@bazel_gazelle//:def.bzl", "gazelle")

# gazelle:prefix github.com/myacct/sandbox/ji

gazelle(name = "gazelle")

很标准的东西,直接来自文档。我已经跑了bazel clean --expunge现在:

$ bazel run //:gazelle
Starting local Bazel server and connecting to it...
INFO: Analyzed target //:gazelle (66 packages loaded, 7036 targets configured).
INFO: Found 1 target...
Target //:gazelle up-to-date:
  bazel-bin/gazelle-runner.bash
  bazel-bin/gazelle
INFO: Elapsed time: 23.191s, Critical Path: 5.81s
INFO: 49 processes: 13 internal, 36 linux-sandbox.
INFO: Build completed successfully, 49 total actions
INFO: Build completed successfully, 49 total actions

让我们看看它做了什么:

$ cat one/BUILD.bazel
load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")

go_library(
    name = "one_lib",
    srcs = ["one.go"],
    importpath = "github.com/symbiont-io/sandbox/ji/one",
    visibility = ["//visibility:private"],
    deps = [
        "@org_golang_google_api//calendar/v3:go_default_library",
        "@org_golang_google_api//people/v1:go_default_library",
        "@org_golang_x_net//context:go_default_library",
        "@org_golang_x_oauth2//:go_default_library",
        "@org_golang_x_oauth2//google:go_default_library",
    ],
)

go_binary(
    name = "one",
    embed = [":one_lib"],
    visibility = ["//visibility:public"],
)

部门看起来不错,这就是我要导入的内容one.go

这是失败的方式:

$ bazel build //one:one
ERROR: /home/ji/sandbox/ji/one/BUILD.bazel:3:11: no such package '@org_golang_google_api//people/v1': The repository '@org_golang_google_api' could not be resolved and referenced by '//oneonone:oneonone_lib'
ERROR: Analysis of target '//one:one' failed; build aborted: Analysis failed
INFO: Elapsed time: 0.087s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (0 packages loaded, 0 targets configured)
罗汉·辛格(Rohan Singh)

我发现文档实际上非常详尽。

无论如何,您需要运行update-repos您可以运行一次性命令导入所需的特定存储库:

bazel run //:gazelle -- update-repos google.golang.org/api/people/v1

或者,您可以创建一个Go模块,然后从导入依赖go.mod

bazel run //:gazelle -- update-repos -from_file=go.mod

我建议后者。使用创建一个模块,go mod init然后可以定期运行一个脚本来更新依赖项:

# update go.mod
go get -d ./...

# update repos with Gazelle
bazel run //:gazelle -- update-repos -from_file=go.mod

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

没有在Gradle缓存中创建Gradle依赖关系?

创建没有开发依赖关系的requirements.txt

Flutter Markdown软件包依赖关系没有为我正确安装

瞪羚+protobuf问题:没有强制提供者:'GoLibrary'

为具有大量依赖关系的库创建包装器的正确方法

cmake依赖关系没有触发

pyinstaller exe没有任何依赖关系?

在makefile中没有建立依赖关系

有没有一种方法可以测试我为正确的依赖关系而构建的软件包?

laravel ->get() 没有正确返回关系

如何正确连接具有依赖关系的类?

创建没有外键的单向关系

创建公共类,具有依赖关系,如何正式共享此依赖关系?

添加了Maven依赖关系,Eclipse没有看到它

dagster是否支持没有输出的实体之间的依赖关系?

如何安装最新的docker版本而没有依赖关系问题

Maven编译失败,因为没有可用的依赖关系

没有IUserAuth或IUserAuthDetails依赖关系/实现的自己的UserAuthRepository

NuGet软件包显示没有依赖关系?

反应useEffect中没有依赖关系吗?

默认情况下没有依赖关系的Maven jar

没有函数依赖的关系模式的规范化

由于没有捆绑文件,Intellij 依赖关系中断

如何创建具有依赖关系的单元测试

创建具有客观c框架依赖关系的胖框架

创建具有CordovFile依赖关系的嵌套文件夹

创建具有构建依赖关系的快速应用

创建实例并解决依赖关系

GitHub在依赖关系中检测到漏洞,但是我运行了npm update,而依赖关系没有更新?