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

时间:2014-04-13 20:02:45

标签: java eclipse maven gradle

Gradle和Maven"做什么"日食或者sts不是吗?从我所读到的它构建,运行等等,这些都可以在eclipse中轻松完成。

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

3 个答案:

答案 0 :(得分:2)

Maven和Gradle可以做许多Eclipse没有的事情。但是,他们所做的最重要的事情是将Bulding和测试过程与您选择的IDE(即Eclipse)分离。当您在大型环境中工作时,对于许多程序员来说,通常无法控制他们使用的IDE。因此,使用Maven和Gradle等工具来标准化这些任务会更好。一本书的代码示例也是如此:代替作者必须提供配置任何IDE来执行它们的指令,它们提供了Maven或Gradle文件,因此读者可以在任何IDE上构建和测试它们。 ; s使用。

Maven和Gradle为您提供的另一个非常重要的功能是,无需在源代码版本控制下使用可执行代码即可管理依赖项。您可以在文本文件(在源版本控制下)声明依赖项,而不是将您依赖的可执行代码作为项目的一部分,然后从存储库中获取它们。

但是,您可能只看到使用Maven或Gradle(甚至是Jenkins或Hudson)等工具的真正优势,当您在大型项目中思考时,由许多开发人员组成的团队在几个月内开发出来。)

答案 1 :(得分:2)

在一个你永远不会与任何人分享的小项目中使用Maven或Gradle并没有太大的好处; IDE也可以进行构建。但随着开发人员数量的增加以及构建的复杂性的增加,将构建指令与IDE分离对于非常非常有用。让我们深入研究一下这些。

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

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

然后有可能将工作卸载到构建服务器,自动运行测试,干净地管理依赖关系等等.IDE本身并不能很好地处理这些问题。通常是因为他们使用像Maven这样的工具进行繁重的工作。

<强> TL;博士
您不必使您的代码与构建系统一起工作,但是如果您并且在很多方面它会有所帮助。

答案 2 :(得分:0)

Gradle和Maven是构建工具。 Maven是第一个,有点老,Gradle更新,并重新定义了如何构建和维护项目的方式。在我看来,它也更容易使用,更易读,更易于维护。我更喜欢Gradle;)

您可以使用eclipse或STS(任何其他IDE)进行开发。当您完成此过程时,您需要为生产提供已配置的工件(war,ear,等等......)并将其部署到那里。这些工件具有良好定义的格式,并且应用程序不能在生产环境中从eclipse或STS运行。它很烦人且容易出错,手工准备这些文物。

Gradle或Maven可以承担建立和准备这些工件的责任(事实上这些工具可以做得更多),这使得这个过程自动化。