java - 我应该掌握 maven 还是开始学习 gradle

标签 java maven gradle build

关闭。这个问题是opinion-based .它目前不接受答案。












想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它.

5年前关闭。




Improve this question




我正在处理的项目使用 Maven 作为构建工具。我知道配置文件、pom 继承、模块、插件、目标、阶段等表面上的基本概念,但我仍然缺少真正的工艺来实现不同环境的复杂构建。

现在,我应该成为 Maven 专家还是开始学习 Gradle 而不是揭示 Maven 的所有技术细微差别?

我看不出 Gradle 带来了什么值(value)。它是以编程方式配置的,但这真的是邪恶的吗?我曾在 Javascript 世界工作,并使用过 Gulp 和 Webpack 等工具。这些工具中的程序化配置简直是一团糟,缺乏一致性。由于它是动态代码,而不是静态文档,因此无法在脑海中形成清晰的配置图景。当您必须进行更改时,在哪里可以找到处理该功能的那行代码并不是那么明显。定义良好的 XML 文档是自我描述的、有组织的并且易于 grepable。

此外,通过编程配置,在构建本身中引入错误的变化更大。是否会有一段时间,构建变得如此复杂以至于有必要构建项目的构建配置?

考虑到这些方面,是否有一些务实的理由开始使用 Gradle(除了跟风)?

最佳答案

我们为我们公司评估了 Gradle 与 Maven。我们的经验:

Maven 强制您使用标准化的方法进行构建。优点是构建脚本在您的公司中更加连贯,并且更像“行业中的其他任何地方”。主要缺点是很难配置自定义需求,这通常来自您仍然需要支持的遗留方法。

但也有重要的可用性方面,因为这两种构建工具的 IDE 支持完全不同。

关于java - 我应该掌握 maven 还是开始学习 gradle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40169710/

相关文章:

java - 你如何在 Java 中使用 stream() 将 Map<v1, Set<v2>> 转换为 Map<v2, Set<v1>>

java - Netty HashedWheelTimer 意外行为。提前超时触发

java - 通过继承和/或聚合重构 Maven 项目

maven - 当 Jersey 发生 500 服务器错误时,如何获取堆栈跟踪?

java - 如何使用 maven-swagger-codegen-plugin 生成文档?

gradle - Heroku 无法识别 gradle - 找不到 pom.xml 文件

java - 如何在 build.gradle 中选择版本

java - 如何阅读非 BMP (astral) Unicode 增补字符(代码点)

java - 输入错误。即使在接受新输入后仍然使用旧输入

java - 如果没有运行测试,如何使 Jenkins 构建失败?