【问题标题】:In Bazel, fetching jar from private maven repository fails with 403在 Bazel 中,从私有 maven 存储库中获取 jar 失败并显示 403
【发布时间】:2020-06-02 15:02:39
【问题描述】:

我正在尝试使用 rules_jvm_external 使用 Bazel 构建一个简单的 java 项目。一些依赖项保存在私有 Maven 存储库中。 我的 WORKSPACE 如下所示:

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

RULES_JVM_EXTERNAL_TAG = "3.2"
RULES_JVM_EXTERNAL_SHA = "82262ff4223c5fda6fb7ff8bd63db8131b51b413d26eb49e3131037e79e324af"

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(
    name = "maven_deps",
    artifacts = [
        "org.projectlombok:lombok:1.18.12",
        "mygroup:myartifact:version"
    ],
    repositories = [
        "https://repo1.maven.org/maven2",
        "https://username:password@my.repo.io/artifactory/repo",
    ],
)

我的 BUILD 如下所示:

java_library(
    name = "mylib",
    srcs = glob([
        "proj/src/main/java/**/*.java"
    ]),
    deps = [
        "@maven_deps//:org_projectlombok_lombok",
        "@maven_deps//:mygroup_myartifact",
    ],
)

当我运行bazel build //:mylib 时,从私有 maven 存储库中获取 mygroup:myartifact:version 失败并显示 http 错误代码 403。为简单起见,我对用户名和密码进行了硬编码。使用的用户名是电子邮件,因此我对其进行了编码,例如:me%40gmail.com。 我正在使用 bazel 版本 3.1.0。 通过环境变量传递用户名和密码产生了同样的错误。 使用 curl 获取同一个 jar 效果很好:

curl -O 'https://me%40gmail:PASSWORD@my.repo.io/artifactory/repo/mygroup/myartifcat-version.jar'

谁能看出问题所在? 提前谢谢!

【问题讨论】:

    标签: java maven build bazel


    【解决方案1】:

    如果我没记错的话,来自 rules_jvm_external 的 Bazel 的 maven_install 依赖 Coursera Coursier* 来获取依赖项。在我工作的地方,我们依赖 property file,其中包含适用于您操作系统的正确位置的凭据。

    尝试设置:

    simple.username=<username>
    simple.password=<password>
    simple.host=my.repo.io
    

    /.config/coursier/credentials.properties(如果您在 Linux 上)或在 OS X 上~/Library/Preferences/Coursier/credentials.properties

    (*) https://github.com/bazelbuild/rules_jvm_external/blob/master/docs/api.md 确实提到了 Coursier

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-16
      • 1970-01-01
      • 2023-03-20
      • 2020-02-21
      • 2016-08-18
      • 2011-07-27
      相关资源
      最近更新 更多