我进行了一些重构,以从我的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>
可能是什么问题,我该如何解决?
答案 0 :(得分:1)
不推荐使用本机maven_jar
,请改用java_import_external
或jvm_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
)