项目具有内部依赖项时,bazel golang构建失败

AlexS:

我在MacOS 10.13.2上。转到1.10。扁平0.11.1

我需要编译一个具有2个项目(project1和project2)的仓库。project1有2个子角色。p1lib和dep1 p1lib使用dep1。

我用瞪羚生成了BUILD文件,文件看起来还可以。

gazelle -go_prefix=github.com/BazelBuildForGo

但是当我运行build时,出现一个错误,提示我缺少直接依赖性。

bazel build //project1
INFO: Analysed target //project1:project1 (3 packages loaded).
INFO: Found 1 target...
ERROR: /private/var/tmp/_bazel_user1/df78026a5ee0c7ed3d23dd05c3a3b1f7/external/com_github_wix_private_bazelbuildforgo/project1/p1lib/BUILD.bazel:3:1: GoCompile external/com_github_wix_private_bazelbuildforgo/project1/p1lib/darwin_amd64_stripped/go_default_library~/github.com/BazelBuildForGo/project1/p1lib.a failed (Exit 1)
2018/03/25 18:02:55 missing strict dependencies:
    external/com_github_wix_private_bazelbuildforgo/project1/p1lib/p1lib.go: import of github.com/wix-private/BazelBuildForGo/project1/dep1, which is not a direct dependency
Target //project1:project1 failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 0.358s, Critical Path: 0.12s
FAILED: Build did NOT complete successfully

我的项目可以在这里找到https://github.com/wix-playground/BazelBuildForGo

杰伊·康罗德(Jay Conrod):

我认为问题在于您在命令行(github.com/BazelBuildForGo)上传递给Gazelle的导入前缀与.go文件(github.com/wix-private/BazelBuildForGo)中的导入不同当Gazelle看到当前前缀之外的导入时,它将为这些导入生成外部依赖项,并且这些依赖项将丢失:

go_library(
    name = "go_default_library",
    srcs = ["p1lib.go"],
    importpath = "github.com/BazelBuildForGo/project1/p1lib",
    visibility = ["//visibility:public"],
    deps = ["@com_github_wix_private_bazelbuildforgo//project1/dep1:go_default_library"],
)

但是,解决此问题非常容易。只需使用前缀运行瞪羚github.com/wix-private/BazelBuildForGo实际上//:gazelle您已经在中有了它,因此只需运行它,然后重新构建即可。

$ bazel run //:gazelle
$ bazel build //...

那将改变go_library上面规则:

go_library(
    name = "go_default_library",
    srcs = ["p1lib.go"],
    importpath = "github.com/wix-private/BazelBuildForGo/project1/p1lib",
    visibility = ["//visibility:public"],
    deps = ["//project1/dep1:go_default_library"],
)

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章