为什么 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
等脚本很麻烦,而且是维护负担。
接下来是Make
1,但是Make不理解Java,所以你最后重新编译了很多Java类 没必要。
- 然后是
Ant
,但是那个不理解Java库依赖。 (这导致了将依赖项的 JAR 副本嵌入到使用它们的项目的存储库中的做法。以及随之而来的困难。)
- 然后是
Maven
,它提供了一个描述和管理依赖关系的系统。它还引入了一种在项目中构建代码和 non-code 文件的标准方法。
- 然后是
Gradle
,它具有更灵活的 (non-linear) 任务执行模型。和性能。
- 然后是
Bazel
,它更侧重于构建的 可重复性。
对于大型项目,Maven、Gradle 和 Bazel 之间的差异更为明显。
1 - 就其用于 Java 构建而言的“下一个”。 Make 工具本身比 Java 早了很多年。
我知道核心Java,我想学习Maven/Gradle。但我想知道为什么需要 maven 或 gradle 。有什么方法可以理解我们在没有 Maven 或 gradle 的情况下会面临的问题。我想知道在不使用构建工具的情况下构建它的过程。出现了解决任何问题的技术。我想知道 Java 开发人员面临的问题。
Why Maven or Gradle come into picture?
因为通过 运行ning javac
从命令行构建 non-trivial 应用程序会导致错误,non-reproducible 构建等等。
历史大致如下
- 运行
javac
手工操作既乏味又不可靠。 - Shell 运行
javac
等脚本很麻烦,而且是维护负担。
接下来是 Make
1,但是Make不理解Java,所以你最后重新编译了很多Java类 没必要。- 然后是
Ant
,但是那个不理解Java库依赖。 (这导致了将依赖项的 JAR 副本嵌入到使用它们的项目的存储库中的做法。以及随之而来的困难。) - 然后是
Maven
,它提供了一个描述和管理依赖关系的系统。它还引入了一种在项目中构建代码和 non-code 文件的标准方法。 - 然后是
Gradle
,它具有更灵活的 (non-linear) 任务执行模型。和性能。 - 然后是
Bazel
,它更侧重于构建的 可重复性。
对于大型项目,Maven、Gradle 和 Bazel 之间的差异更为明显。
1 - 就其用于 Java 构建而言的“下一个”。 Make 工具本身比 Java 早了很多年。