手动在IDE中构建和使用Ant/Maven的区别是什么?

3

您好,大多数情况下,我会使用IDE选项构建/清除Java应用程序,然后将JAR / WAR / EAR文件导出到桌面,之后使用服务器管理URL /控制台在服务器上部署。但在某些组织中,将使用Linux / Windows的ant / maven脚本构建应用程序。使用IDE和外部脚本构建是否有区别呢?

2个回答

2
一个外部脚本,比如ANT,可以为您自动化一些事情。当您只是构建一个.JAR时,这可能看起来不相关,但是当您开始做更多的事情时,它会非常有帮助。
自动化构建可以为您完成以下工作:
- 运行单元测试并创建可查看的报告。 - 编译您的项目(“Build”)。 - 将.JAR移动到另一个目录。 - 通过FTP上传到您的服务器。
这意味着您目前所有的工作都可以通过双击Ant脚本来完成。Eclipse甚至支持Ant,因此您可以在IDE中编辑和运行脚本。
关于自动化哲学的一个修改。假设您当前的流程需要花费约15分钟来构建一个.JAR并将其上传到服务器:
- 一次,15分钟。 - 两次,30分钟。 - 四次,60分钟。
你懂的。但是等等,你说,编写一个ANT脚本...那更困难了 - 学习ANT并编写一个可用的脚本可能需要8个小时。
这是绝对正确的,但自动化的伟大之处在于现在执行您的步骤需要0分钟。所以,整个过程看起来像这样:
- 编写ANT脚本:480分钟(8小时) - 运行ANT脚本:0分钟
那么如何知道您是否需要自动化?只需考虑您将需要执行手动流程的次数。如果您只需要运行一次,则比较是15分钟与480分钟,您不应编写脚本。但是,如果您认为您将执行该过程40次,则比较是600分钟与480分钟,您最好编写脚本。
(上述还排除了自动化的其他积极因素。例如,手动操作时很容易犯错误[创建.JAR中的错误] - 但是一旦正确设置,计算机就永远不会犯错。)

还可以注意到,当使用ANT或Maven时,通常会设置IDE以使用配置文件来设置IDE项目。因此,本质上没有区别。即使在您的IDE中,ANT和Maven也会被用于某个特定点。 - Gimby
谢谢您提供详细的解释。但我的问题很直接。我们在Eclipse IDE中开发应用程序,然后使用IDE中的Build/Clean选项编译/构建应用程序。但大多数人会调用外部脚本来编译/构建。使用IDE和外部脚本编译应用程序有什么区别? - rev
没有区别。Eclipse使用不同的编译器,请参见:https://dev59.com/2nA75IYBdhLWcg3w3NHf,但无论如何构建应用程序,最终结果应该是相同的。 - sdasdadas

2
如果您只需要将整个项目存档为WAR或EAR,则通过IDE构建与通过ANT构建没有什么区别。然而,在某些情况下,需要的不仅仅是存档。例如,您可能想创建一个EAR,但不想在其中包含某些jar文件。或者在创建EAR之前,您可能想要删除所有属性文件。ANT提供了这种灵活性。您可以定义自己的build.xml并通过ANT运行它。它将按照build.xml中定义的方式创建EAR。
此外,由于这是自动化过程,所以时间更少。因此,如果您需要频繁创建WAR或EAR,则应该使用脚本。它们将节省您大量时间。
因此,自动化和定制是使用ANT脚本的两个主要优点。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接