我正在将项目从Maven迁移到bazel并出现错误

时间:2020-01-29 05:52:22

标签: bazel

我正在遵循官方的bazel文档,以从maven迁移到bazel,并使用rules_jvm_external在工作空间文件和Build文件中定义了外部依赖关系。但是我遇到了以下错误。

C:/users/kunal_visoulia/_bazel_kunal_visoulia/3f5dzdsz/external/maven/BUILD:1212:1: in deps attribute of jvm_import rule @maven//:commons_digester_commons_digester: rule '@maven//:xml_apis_xml_apis' does not exist
ERROR: Analysis of target '//:everything' failed; build aborted: Analysis of target '@maven//:commons_digester_commons_digester' failed; build aborted
INFO: Elapsed time: 724.364s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (4 packages loaded, 371 targets configured)
    Fetching @remotejdk11_win; Restarting.

我正在使用私有关系仓库和官方Maven仓库。请帮忙

1 个答案:

答案 0 :(得分:0)

我已成功重现了您的错误,并找到了以下解决方法:

  1. xml-apis:xml-apis:1.4.01junit:junit-dep:4.9添加到您的 文物列表。
  2. 添加version_conflict_policy = "pinned" 属性为maven_install。

根本原因是https://github.com/bazelbuild/rules_jvm_external/issues/250。缺少的依存关系是重新定位到新的GAV坐标的工件,coursier解析器尚无法处理这些工件。通常的解决方法是将旧版GAV坐标手动添加到maven_install中。

具体来说,xml-apis:xml-apis:2.0.2重定位到xml-apis:xml-apis:1.0.b2(但未重定位1.4.0.1),而junit:junit-dep:4.9重定位到了junit:junit。