使用maven_jar规则时,Bazel无法构建项目

时间:2019-01-31 08:29:34

标签: bazel

我进行了一些重构,以从我的WORKSPACE文件中调用此setup函数:

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规则,然后我认为这是因为这是一个工作区规则)。 / p>

可能是什么问题,我该如何解决?

1 个答案:

答案 0 :(得分:1)

不推荐使用本机maven_jar,请改用java_import_externaljvm_maven_import_external

GitHub issue跟踪这一规则的弃用:

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
)