VSCode出现问题,无法检索Bazel构建目标。

4

我在使用VSCode加载Java项目的构建目标时遇到了问题。我收到的错误信息如下:

Command failed: bazel --output_base=/var/folders/cj/1fv063dx1772zbpnfpzvj_c00000gn/T/5b71fd39758e7fd8e710c281fbbdda92 query ...:* --output=package Loading: 0 packages loaded ERROR: error loading package 'bazel-test/external/rules_jvm_external': cannot load '//:private/versions.bzl': no such file Loading: 12 packages loaded currently loading: bazel-test/external/local_config_cc ... (6 packages) Loading: 12 packages loaded currently loading: bazel-test/external/local_config_cc ... (6 packages)

我的工作空间文件如下:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "io_bazel_rules_docker",
    sha256 = "4521794f0fba2e20f3bf15846ab5e01d5332e587e9ce81629c7f96c793bb7036",
    strip_prefix = "rules_docker-0.14.4",
    urls = ["https://github.com/bazelbuild/rules_docker/releases/download/v0.14.4/rules_docker-v0.14.4.tar.gz"],
)

load(
    "@io_bazel_rules_docker//repositories:repositories.bzl",
    container_repositories = "repositories",
)
container_repositories()

load("@io_bazel_rules_docker//repositories:deps.bzl", container_deps = "deps")

container_deps()

load("@io_bazel_rules_docker//repositories:pip_repositories.bzl", "pip_deps")

pip_deps()

load(
    "@io_bazel_rules_docker//java:image.bzl",
    _java_image_repos = "repositories",
)

_java_image_repos()

load(
    "@io_bazel_rules_docker//container:container.bzl",
    "container_pull",
)

container_pull(
  name = "openjdk11_slim",
  registry = "index.docker.io",
  repository = "library/openjdk",
  tag = "11-slim"
)

RULES_JVM_EXTERNAL_TAG = "3.3"
RULES_JVM_EXTERNAL_SHA = "d85951a92c0908c80bd8551002d66cb23c3434409c814179c0ff026b53544dab"

http_archive(
    name = "rules_jvm_external",
    strip_prefix = "rules_jvm_external-%s" % RULES_JVM_EXTERNAL_TAG,
    sha256 = RULES_JVM_EXTERNAL_SHA,
    url = "https://github.com/bazelbuild/rules_jvm_external/archive/%s.zip" % RULES_JVM_EXTERNAL_TAG,
)

load("@rules_jvm_external//:defs.bzl", "maven_install")

maven_install(
    artifacts = [
        # Accessed as dependency: @maven://io_vertx_vertx_core
        "io.vertx:vertx-core:3.9.2",
        # Accessed as dependency: @maven://io_vertx_vertx_web
        "io.vertx:vertx-web:3.9.2",
        # Accessed as dependency: @maven://io_vertx_vertx_rx_java2
        "io.vertx:vertx-rx-java2:3.9.2",
    ],
    repositories = [
        "https://repo1.maven.org/maven2",
    ]
)

我没有看到我的WORKSPACE文件有任何明显的问题,所以我倾向于认为问题出现在VSCode或者我外部依赖中的构建文件里。此外,该项目只包含一个Hello.java和它相应的java_binary规则。如果我对所有包运行同样的查询,我得到以下结果:

% bazel query ...:\* --output=package          

src/main/java
Loading: 0 packages loaded

换句话说,没有错误。有什么想法可以尝试调试或修复这个问题吗?我刚刚在笔记本电脑上安装了所有软件版本如下:

Bazel version: 3.5.0
VSCode versio: 1.48.2

我能理解你的痛苦,因为我也面临着完全相同的问题。至今仍然没有解决办法。 - Zed_Blade
2个回答

7

跟随评论,忽略方便符号链接解决了我的问题:

echo bazel-`basename ${PWD}` >> .bazelignore

1
我通过在Bazel扩展设置中更改查询表达式,从而解决了这个问题:

...:*

改为

//<目录名称>/...:*


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接