Java 在Bazel中,从私有maven存储库获取jar失败,返回403

Java 在Bazel中,从私有maven存储库获取jar失败,返回403,java,maven,build,bazel,Java,Maven,Build,Bazel,我正在尝试使用Bazel构建一个简单的java项目,使用规则\uJVM\uExternal。一些依赖项保存在私有maven存储库中。 我的工作区如下所示: load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") RULES_JVM_EXTERNAL_TAG = "3.2" RULES_JVM_EXTERNAL_SHA = "82262ff4223c5fda6fb7ff8bd63db8131b51b413d26eb

我正在尝试使用Bazel构建一个简单的java项目,使用规则\uJVM\uExternal。一些依赖项保存在私有maven存储库中。 我的工作区如下所示:

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",
    ],
)
java_library(
    name = "mylib",
    srcs = glob([
        "proj/src/main/java/**/*.java"
    ]),
    deps = [
        "@maven_deps//:org_projectlombok_lombok",
        "@maven_deps//:mygroup_myartifact",
    ],
)
我的构建如下所示:

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",
    ],
)
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失败,错误代码为403。为了简单起见,我硬编码了用户名和密码。使用的用户名是电子邮件,因此我对其进行了编码,例如:
me%40gmail.com
。 我使用的是bazel版本3.1.0。 通过env vars传递用户名和密码会产生相同的错误。 使用curl获取相同的jar非常有用:

curl -O 'https://me%40gmail:PASSWORD@my.repo.io/artifactory/repo/mygroup/myartifcat-version.jar'
有人知道问题出在哪里吗?
提前谢谢你

如果我没记错的话,Bazel的
maven\u安装
from
rules\u jvm\u external
依赖Coursera*获取依赖项。在我工作的地方,我们依靠一个在操作系统的正确位置包含凭据的数据库

尝试设置此选项:

simple.username=<username>
simple.password=<password>
simple.host=my.repo.io
simple.username=
简单密码=
simple.host=my.repo.io
在OS X上的
/.config/coursier/credentials.properties
(如果您在Linux上)或
~/Library/Preferences/coursier/credentials.properties


(*)提到Coursier确实

如果我没记错的话,Bazel的
maven\u安装
来自
rules\u jvm\u external
依赖Coursera*获取依赖项。在我工作的地方,我们依靠一个在操作系统的正确位置包含凭据的数据库

尝试设置此选项:

simple.username=<username>
simple.password=<password>
simple.host=my.repo.io
simple.username=
简单密码=
simple.host=my.repo.io
在OS X上的
/.config/coursier/credentials.properties
(如果您在Linux上)或
~/Library/Preferences/coursier/credentials.properties

(*)确实提到了Coursier