【问题标题】:I don't see the point of Gradle / Maven [closed]我看不到 Gradle / Maven 的意义 [关闭]
【发布时间】:2021-01-28 07:29:00
【问题描述】:

我不明白为什么有人要使用 Gradle 或 Maven 之类的工具,我的意思是他们甚至会做什么?我试图理解和使用它们,但这让我无法理解它们只会让事情变得不必要地复杂化,并创建很多看起来毫无用处的文件。

那么,为什么要费心使用这些工具呢?它们有什么用处?

【问题讨论】:

  • 他们处理下载依赖项,这很好。我认为它们实际上只是一个美化的 MAKEFILE。不过,我也很乐意接受这方面的教育。
  • 作为构建工具如何发挥作用的示例,我们的一个项目使用 80 多个模块、8k 类和 600 个唯一依赖项生成了 10 个应用程序(具有多个变体)。每个模块选择自己的依赖项并提供多个 JAR,从而导致复杂的模块层次结构。所有构建过程和项目间关系都由 Gradle 管理,一个完整的构建大约需要 2k 个任务。 Gradle 足够聪明,可以在可能的情况下并行运行这些任务,并避免没有适用更改的任务。用javacjar 来实现这一点是非常不切实际的。

标签: java maven gradle build


【解决方案1】:

首先,Gradle 和 Maven 是管理依赖项的绝佳工具,还为您提供了简化构建过程的选项。如果没有这些工具,您将不得不手动下载 *.jar 文件。并将它们复制到项目文件夹中的某个位置。 如果要更新,则必须再次打开网站,下载并替换现有的 JAR。

JAR 本身通常具有依赖项,因此您也必须手动下载它们。

我可以理解,一开始 Maven / Gradle 的设置可能很耗时,但通常值得花时间,因为您只需要声明:我需要包 com.example.package in version 1.2.3 你只需要运行一个简单的安装命令,他们就会负责下载所需的一切。

其次,您可以声明描述如何运行测试的命令,它们通常会确保您的测试不会与您的最终编译包混淆。

这也有利于协作,因为一旦共享此配置,每个开发人员都可以使用它,而无需费心配置您的开发环境。另一个好处是它独立于任何 IDE,因此您的项目不是 IntelliJ 或 Eclipse 项目,每个人都可以使用他们喜欢的 IDE/编辑器。

基本上这个想法是:你配置一次,然后你就可以享受自动化了。

但是,如果您的项目非常小并且仅依赖于几个依赖项,您可能不需要它。

【讨论】:

  • 感谢您的解释!这很有帮助。
  • 很高兴能为您提供帮助。我认为这是一个很好的问题,即使它对 stackoverflow 来说有点离题。在学习新事物时,例如作为一种新的编程语言,我看到老师和教程经常向你扔很多额外的东西,而没有让自己有机会意识到人们为什么发明了这些额外的东西。在某种程度上,它与使用简单的编辑器与 IDE 非常相似。编辑器工作得很好,如果你只是想写一点代码,但如果你想重构一个方法的名字,你很快就会意识到 IDE 的优势(虽然会占用更多资源)。
猜你喜欢
  • 2013-08-07
  • 1970-01-01
  • 1970-01-01
  • 2016-11-20
  • 2011-08-27
  • 1970-01-01
  • 2014-11-28
  • 2017-03-03
  • 1970-01-01
相关资源
最近更新 更多