Базель не может построить проект при использовании правила maven_jar - PullRequest
0 голосов
/ 31 января 2019

Я произвел некоторый рефакторинг, чтобы эта функция setup вызывалась из моего файла WORKSPACE:

load("@io_bazel_rules_kotlin//kotlin:kotlin.bzl", "kotlin_repositories", "kt_register_toolchains")
load("@build_bazel_rules_swift//swift:repositories.bzl", "swift_rules_dependencies")
load("@build_bazel_rules_apple//apple:repositories.bzl", "apple_rules_dependencies")
load("@bazel_tools//tools/build_defs/repo:maven_rules.bzl", "maven_jar")
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
load("@io_bazel_rules_go//go:def.bzl", "go_rules_dependencies", "go_register_toolchains")
load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies")

def setup():
  swift_rules_dependencies()
  apple_rules_dependencies()

  kotlin_repositories()
  kt_register_toolchains()
  go_rules_dependencies()
  go_register_toolchains()

  gazelle_dependencies()
  maven_jar(name = "retrofit",artifact = "com.squareup.retrofit2:retrofit:2.3.0")
  maven_jar(name = "retrofit_converter_jackson", artifact = "com.squareup.retrofit2:converter-jackson:2.3.0")
  maven_jar(name = "jackson_core", artifact = "com.fasterxml.jackson.core:jackson-core:2.9.4")
  maven_jar(name = "jackson_annotations", artifact = "com.fasterxml.jackson.core:jackson-annotations:2.9.4")
  maven_jar(name = "okhttp",artifact = "com.squareup.okhttp3:okhttp:3.6.0")
  maven_jar(name = "jackson_databind", artifact = "com.fasterxml.jackson.core:jackson-databind:2.9.4")
  maven_jar(name = "jackson_datatype_guava", artifact = "com.fasterxml.jackson.datatype:jackson-datatype-guava:2.9.4")
  maven_jar(name = "jackson_module_kotlin", artifact = "com.fasterxml.jackson.module:jackson-module-kotlin:2.9.4")
  maven_jar(name = "google_collections", artifact = "com.google.collections:google-collections:1.0")
  maven_jar(name = "rxjava", artifact = "io.reactivex.rxjava2:rxjava:2.1.13")

Она основана на моей локальной машине, но на сервере CI я получаю ошибку jackson_databind требует mvn в качестве зависимости.Пожалуйста, проверьте ваш PATH.

Перед рефакторингом, т.е. когда все вышеперечисленное было сделано внутри файла WORKSPACE, оно работало нормально (хотя правило maven_jar загружать не нужно, тогда как я считаю,это потому, что это правило рабочей области).

В чем может быть проблема и как ее решить?

1 Ответ

0 голосов
/ 31 января 2019

Нативный maven_jar устарел, вместо него используйте java_import_external или jvm_maven_import_external.

Из проблемы GitHub , отслеживающей устаревание этого правила:

load("@bazel_tools//tools/build_defs/repo:jvm.bzl", "jvm_maven_import_external")
jvm_maven_import_external(
    name = "truth",
    artifact = "com.google.truth:truth:0.30",
    artifact_sha256 = "59721f0805e223d84b90677887d9ff567dc534d7c502ca903c0c2b17f05c116a",
    server_urls = ["http://central.maven.org/maven2"],
    licenses = ["notice"],  # Apache 2.0
)
...