java - 试图了解 gradle 和 maven 实际上做了什么

标签 java eclipse maven gradle

Gradle 和 Maven 究竟做了哪些 eclipse 或 sts 没有做的事情?根据我的阅读,它可以构建、运行等,这些都可以在 Eclipse 中轻松完成。

如果我有一个现有项目,我已经创建、构建并通过 tomcat 在 eclipse 中运行,我将使用 gradle 做什么?

最佳答案

在您从不与任何人共享的小项目中使用 Maven 或 Gradle 并没有太多好处; IDE 也可以进行构建。但随着开发人员数量的增加和构建复杂性的增加,将构建指令与 IDE 分开变得非常有用。让我们深入研究一下。

随着开发人员的增加,您不希望每个人都必须过来使用您的 IDE 来完成构建。那真的很烦人!所以他们在他们自己的机器上,但是他们往往有不同的设置(他们怎么敢有不同的用户帐户名!)并且他们的 IDE 安装设置可能也有点不同。所以我们需要某种构建指令,人们可以使用它来让事情顺利进行,如果每个人都可以重复使用相同的构建指令,那么您就不会得到太多“但它在我的机器上工作!”的实例。如果这些说明足够简单,可以让团队中的新程序员快速上手,这也非常有帮助。

但随着项目范围的扩大,经常发生的另一件事是它们的构建变得更加复杂。他们经常获得额外的依赖(他们并不是开始需要一个高性能的日期解析器和 MIME 类型标识符,但他们已经成为必需的,你不想从头开始编写所有这些)并且意味着您必须确保在构建完成后,使用了那些依赖项的正确版本。但这并不是复杂性增加的唯一方式。通常情况下,您会发现您正在使用更多自动生成的代码。您可能会发现自己经常使用 XML 模式或 WSDL,或者可能使用 Hibernate、Spring,或者……好吧,有很多方法可以使事情变得复杂,好吗?在这些场景中,让各种步骤正确、可靠地完成所有构建可能有点棘手,但是将它们编码为 Maven 之类的指令,一旦您一开始就采取行动,事情就会变得容易得多。 (当您开始尝试处理需要许多协同工作的不同子程序的项目时,这一点变得更加重要;其中一些显然很难构建即使使用 Maven 或 Gradle 或任何其他工具.)

然后就有可能将工作卸载到构建服务器、自动运行测试、干净地管理依赖项等。IDE 本身并不能很好地处理这些;他们做得合理的地方,通常是因为他们在幕后使用 Maven 等工具来完成繁重的工作。

tl;dr
您不必让您的代码与构建系统一起工作,但如果您这样做并且在很多方面都会有所帮助。

关于java - 试图了解 gradle 和 maven 实际上做了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23047758/

相关文章:

java - JTable-在应用默认 Nimbus 样式时覆盖prepareRenderer?

java - 使用 Selenium IE webdriver 和 JAVA 识别特定字符串后面的文本

java - 为什么在 junit5 测试中 Autowiring 的 Controller 总是为空?

netbeans - 如何在 Netbeans Maven Web 项目中分析 Jetty 应用程序?

java - JPanel 未显示

java - 为什么我的 Canvas 添加到我的 JFrame 后无法绘制?

java - Java 和 Maven 构建器如何在 Eclipse 中协同工作?

c++ - 查看对象中的函数 [Eclipse C++]

javascript - 无法导入html中的js文件

java - 如何在pom.xml中添加\安装新创建的\第三方jar的maven依赖