是否有从 Maven 到 Bazel 的迁移路径?

Is there a migration path from Maven to Bazel?

既然 Bazel (http://bazel.io/) 已经开源,是否有一个增量过程可以让我逐渐将(大型存储库)从 Maven 迁移到 Bazel?

我从事 Bazel 方面的工作。不,据我们所知,没有这样的过程。我愿意。

我们已经 运行 从其他构建系统迁移到 Bazel;证据不是决定性的,但很难想象增量过程会是什么样子。在某些情况下,我们可以设想一个构建系统为另一个构建系统(如 gyp)生成配置文件,但是你仍然需要批量切换。

在 Ulf 回应后的两年里,已经做出了一些努力来协助 maven 到 bazel 的迁移。特别是,Bazel 团队正在创建一个工具来协助解决此问题:https://github.com/bazelbuild/migration-tooling

该工具从一组 pom 文件或 maven 坐标生成扩展的 WORKSPACE 文件。在理想情况下,您可以将路径传递给您的 maven 项目,然后它会生成一个 bzl 文件,您可以将其加载到 WORKSPACE 文件中。

有关如何管理外部依赖项的更多评论可在此处找到:https://bazel.build/versions/master/docs/external.html

还有另一个更新 (2018)...

有专门的指南介绍如何从 Maven 构建工具迁移到 Bazel。

一般来说,最好同时使用这两种构建工具 运行,直到您完全迁移开发团队、CI 系统和任何其他相关集成。您可以 运行 Maven 和 Bazel 在同一个存储库中。

https://docs.bazel.build/versions/master/migrate-maven.html

2019 年 9 月更新

Wix 发布了一个名为 Exodus 的工具来自动将您的 Maven 项目迁移到 Bazel。

此外,rules_jvm_external 支持管理可传递的 Maven 工件依赖项。

2018 年 5 月更新

这是另一个使用 Jadep 的更新,这是一个用于 Java 项目的 BUILD 文件生成器。

迁移 google-java-format 到 Bazel 的作者有一个教程:https://github.com/cgrushko/text/blob/master/migrating-gjf-to-bazel.md