依赖于依赖于内部包的外部库

时间:2021-05-13 04:37:35

标签: go bazel

我有一个依赖于 https://github.com/aws/aws-sdk-go-v2 的 bazel 项目,当我尝试构建我的项目时失败:

/private/var/tmp/_bazel_jason/0e236569105a6029115d2df15af0d848/external/com_github_aws_aws_sdk_go_v2_service_s3/internal/arn/BUILD.bazel:3:11: in go_library rule @com_github_aws_aws_sdk_go_v2_service_s3//internal/arn:arn: target '@com_github_aws_aws_sdk_go_v2_service_internal_s3shared//arn:arn' is not visible from target '@com_github_aws_aws_sdk_go_v2_service_s3//internal/arn:arn'. Check the visibility declaration of the former target if you think the dependency is legitimate

根据 https://github.com/bazelbuild/bazel-gazelle/issues/619 中的注释,我已经能够通过在 repositories.bzl 中应用补丁来修改违规包中的可见性子句来解决这个问题。这行得通,但很麻烦。

我知道指令 # gazelle:go_visibility,但我不清楚这是否或如何解决我的问题。我已经尝试在 repositories.bzl 中使用它,如下所示,但我仍然遇到上述相同的错误:

 go_repository(
    name = "com_github_aws_aws_sdk_go_v2_service_s3",
    build_directives = [
        "gazelle:go_visibility @com_github_aws_aws_sdk_go_v2_service_internal_s3shared//:__subpackages__",
    ],
    importpath = "github.com/aws/aws-sdk-go-v2/service/s3",
    sum = "h1:EMihU4D4F9S/TytkQGcHSLeUHjRRjnPi0D+Xkoq6odU=",
    version = "v1.6.0",
)

我也尝试在这里使用 "gazelle:go_visibility @com_github_aws_aws_sdk_go_v2_service_internal_s3shared//arn:arn:__subpackages__",但这给了我一个错误 invalid label '@com_github_aws_aws_sdk_go_v2_service_internal_s3shared//arn:arn:__subpackages__' in element 1 of attribute 'visibility' in 'go_library' rule: invalid target name 'arn:__subpackages__': target names may not contain ':'

0 个答案:

没有答案