bazel говорит внешней зависимости maven использовать локальный jar - PullRequest
0 голосов
/ 09 июля 2019

GAPID использует bazel и имеет внешнюю зависимость, которая использует maven.Я получаю эту ошибку:

ERROR: C:/users/pemgithub/_bazel_pemgithub/3mdmxsrc/external/gapic_third_party/BUILD.bazel:19:1: no such package '@io_grpc_context//jar': Failed to fetch Maven dependency: Could not transfer artifact io.grpc:grpc-context:jar:1.16.1 from/to io_grpc_context (https://repo1.maven.org/maven2/): connect timed out and referenced by '@gapic_third_party//:grpc'
ERROR: Analysis of target '//:pkg' failed; build aborted: no such package '@io_grpc_context//jar': Failed to fetch Maven dependency: Could not transfer artifact io.grpc:grpc-context:jar:1.16.1 from/to io_grpc_context (https://repo1.maven.org/maven2/): connect timed out
INFO: Elapsed time: 11.014s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (0 packages loaded, 0 targets configured)
    Fetching @com_github_pkg_errors; Restarting. 10s

Я думаю, что это связано с прокси (корпоративная сеть).Я попытался добавить настройки прокси в C: /users/pemgithub/.m2/settings.html.Однако bazel maven, похоже, не использует настройки прокси.

Поэтому я бы предпочел просто загрузить файлы jar вручную и указать bazel maven использовать локальные файлы jar.Как мне это сделать?

Ответы [ 2 ]

0 голосов
/ 09 июля 2019

Базель в настоящее время (июль 2019) не поддерживает это должным образом.Хотя rules_jvm_external рекомендуется в качестве преемника maven_jar, он не читает ~/.m2/settings.xml Maven и также не поддерживает использование уже загруженных артефактов из ~/.m2/repository.

Один из способов - использовать свой собственный.маленький обратный прокси, который читает из ~/.m2/repository и говорит Bazel о загрузке из localhost.Для этого я создал bazel-maven-proxy .Обратите внимание, что он пока не поддерживает прокси-серверы в пользу внутреннего центрального зеркала Maven, но внести свой вклад в него просто.

0 голосов
/ 09 июля 2019

Пожалуйста, не используйте правило maven_jar.Он устарел в пользу набора правил распознавателя Maven rules_jvm_external.

В rules_jvm_external вы можете использовать прокси через переменные окружения HTTP_PROXY / HTTPS_PROXY ( документация ) и установить пользовательский URL-адрес хранилища с учетными данными аутентификации (документация ).

...