当前位置: 首页 > 知识库问答 >
问题:

缺少严格依赖项的Bazel构建

齐典
2023-03-14

我试图用Brazel建立一个围棋应用程序。我正在处理的是一个现有的私有GitHub repo(位置:GitHub.xyz.com/repo-name),我的目标是从main.Go文件中创建一个二进制文件,该文件依赖于其他一些Go文件来实现它的方法。这是我的build.bazel文件,位于名为e2e的文件夹中,所有这些go文件都在这里:

load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")

go_binary(
    name = "e2e",
    embed = [":go_default_library"],
    visibility = ["//visibility:public"],
)

go_library(
    name = "go_default_library",
    srcs = ["main.go"],
    data = [
        "//cmd/iasd",
        "//migrations:migration_files",
        "//test/iamd:client-ca-bundle.pem",
    ] + glob(
        ["testdata/**"],
    ),
    importpath = "github.xyz.com/repo-name/test/e2e",
    visibility = ["//visibility:public"],
    deps = [
        "//test:go_default_library",
        "//vendor/github.com/bazelbuild/rules_go/go/tools/bazel:go_default_library",
        "//vendor/github.com/golang-migrate/migrate:go_default_library",
        "//vendor/github.com/golang-migrate/migrate/database/cockroachdb:go_default_library",
        "//vendor/github.com/golang-migrate/migrate/source/file:go_default_library",
        "//vendor/github.com/google/uuid:go_default_library",
        "//vendor/github.com/lib/pq:go_default_library",
        "//vendor/github.com/pkg/errors:go_default_library",
        "//vendor/google.golang.org/grpc:go_default_library",
        "//vendor/google.golang.org/grpc/credentials:go_default_library",
        "//api/grpc/v1/applications:go_default_library",
        "//api/grpc/v1/clients:go_default_library",
        "//pkg/oauth2/mtls:go_default_library",
        "//vendor/github.com/coreos/go-oidc:go_default_library",
        "//vendor/github.com/dgrijalva/jwt-go:go_default_library",
        "//vendor/golang.org/x/oauth2:go_default_library",
    ],
)

这就是导入在main.go文件中的外观:

import (
    "context"
    "crypto/tls"
    "encoding/json"
    "io/ioutil"
    "net/http"
    "net/url"
    "strings"
    "time"
    "log"
    "fmt"
    "io"
    "os"

    "github.com/pkg/errors"
    "github.com/coreos/go-oidc"
    "github.com/dgrijalva/jwt-go"
    "github.xyz.com/repo-name/api/grpc/v1/applications"
    "github.xyz.com/repo-name/api/grpc/v1/clients"
    "github.xyz.com/repo-name/pkg/oauth2/mtls"
    "github.xyz.com/repo-name/test/e2e"
    "github.xyz.com/repo-name/test"
    "golang.org/x/oauth2"
    "google.golang.org/grpc"
)
compilepkg: missing strict dependencies:
    /private/var/tmp/_bazel_<myname>/a9b32769d59e90b5398bc5d8a988c877/sandbox/darwin-sandbox/394/execroot/github_xyz_com_repo_name/test/e2e/main.go: import of "github.xyz.com/repo-name/test/e2e"
No dependencies were provided.

这是因为在主文件中导入了github.xyz.com/repo-name/test/e2e。为了包含导入,如果我将其添加到deps:“//test/e2e:go_default_library”中的build.bazel文件中,将出现以下错误:

"//test/e2e:go_default_library: cycle in dependency graph:
    //test/e2e:e2e
.-> //test/e2e:go_default_library [self-edge]"

我理解错误的背景,但我无法找到一个合适的方法来解决它。我应该在build.bazel文件中做什么更改才能正确地包含依赖项?

共有1个答案

康恩
2023-03-14

我通过将main.go文件添加到e2e文件夹中的一个新文件夹(同时将helper文件保留在e2e文件夹中)来解决这个问题。这样,当我将main.go文件的依赖项添加到helper文件时,它不会导致循环依赖项错误。

 类似资料:
  • 问题内容: 我正在使用Jersey上传文件。我定义了方法: 并调用Jersey客户的呼叫进行测试: 但是,我得到: 严重:缺少方法public java.util.Collection ImageResource.uploadImage(java.io.InputStream,com.sun.jersey.core.header.FormDataContentDisposition)的依赖关系将j

  • 我在构建我的应用程序时遇到此问题。有人知道怎么回事吗? React Hook useEffect缺少依赖项:“conectar”。包括它或删除依赖项数组react hooks/dep

  • 在我的反应/redux应用程序中,我使用调度来调用每次安装组件时从redux中的状态检索数据的操作。问题正在使用状态发生我的方式不工作 下面是我得到的错误: React Hook useEffect缺少依赖项:“dispatch”。包括它或删除依赖项数组。像“getInvoiceData”这样的外部作用域值不是有效的依赖项,因为对它们进行变异不会重新呈现组件react HOOK/DEP 这是我的密

  • 问题内容: 谁能帮我 .. ?我试图用JAX-RS创建一个Web服务,但是它给了我这个例外: org.glassfish.jersey.server.wadl.internal.WadlResource.wadlContext 这是我的java类的代码: -– Web.xml部分: -—使用的罐子是: javax.annotation-api-1.2.jar javax.ws.rs-api-2.0

  • 我试图在Tomcat服务器上部署一个基于spring的web应用程序,但我无法自动连接EntityManager。根本原因是错误。 我假设我有不正确的HibernateJAR作为依赖项。任何帮助都将不胜感激 我之前看到一篇帖子指出,问题在于包含了以下依赖项,但我不包括这一项: 以下是我的POM依赖项:

  • 我能够成功运行所有使用pandas的脚本,但突然我所有的pandas脚本都出现以下错误: 回溯(最近一次呼叫最后一次): 文件“data_visualization.py”,第5行,在 文件“/usr/lib64/python2.7/site packages/pandas/init.py”,第18行,在 最近我没有安装或更新任何新东西。 有人对此有解决办法吗? 我卸载了熊猫和Numpy,并重新安