为什么 Maven 或 Gradle 会出现?

Why Maven or Gradle come into picture?

我知道核心Java,我想学习Maven/Gradle。但我想知道为什么需要 maven 或 gradle 。有什么方法可以理解我们在没有 Maven 或 gradle 的情况下会面临的问题。我想知道在不使用构建工具的情况下构建它的过程。出现了解决任何问题的技术。我想知道 Java 开发人员面临的问题。

Why Maven or Gradle come into picture?

因为通过 运行ning javac 从命令行构建 non-trivial 应用程序会导致错误,non-reproducible 构建等等。

历史大致如下

  • 运行 javac 手工操作既乏味又不可靠。
  • Shell 运行 javac 等脚本很麻烦,而且是维护负担。
  • 接下来是
  • Make1,但是Make不理解Java,所以你最后重新编译了很多Java类 没必要。
  • 然后是Ant,但是那个不理解Java库依赖。 (这导致了将依赖项的 JAR 副本嵌入到使用它们的项目的存储库中的做法。以及随之而来的困难。)
  • 然后是 Maven,它提供了一个描述和管理依赖关系的系统。它还引入了一种在项目中构建代码和 non-code 文件的标准方法。
  • 然后是 Gradle,它具有更灵活的 (non-linear) 任务执行模型。和性能。
  • 然后是 Bazel,它更侧重于构建的 可重复性

对于大型项目,Maven、Gradle 和 Bazel 之间的差异更为明显。


1 - 就其用于 Java 构建而言的“下一个”。 Make 工具本身比 Java 早了很多年。