【问题标题】:What is the difference between manually building within an IDE and using Ant / Maven?在 IDE 中手动构建和使用 Ant / Maven 有什么区别?
【发布时间】:2013-03-20 17:01:09
【问题描述】:

您好,大多数时候我将使用 IDE 选项 Build/Clean 构建 Java 应用程序,然后将 JAR/WAR/EAR 文件导出到桌面,之后将使用服务器管理 url/console 在服务器中部署。但在一些组织中,会在 linux/windows 中使用 ant/maven 脚本构建应用程序。使用IDE和外部脚本有什么区别吗?

【问题讨论】:

    标签: java deployment build


    【解决方案1】:

    如果您只是需要在 IDE 中将整个项目存档为 WAR 或 EAR ,那么通过 IDE 或彻底的 ANT 构建它并没有什么不同。

    但是,在某些情况下,它需要的不仅仅是存档。例如,您可能想要创建一个 EAR,但不想在其中包含某些 jar。或者,您可能希望在创建 EAR 之前删除所有属性文件。 ANT 为您提供了这种灵活性。您可以定义自己的 build.xml 并通过 ANT 运行它。它将创建 build.xml 中定义的 EAR。

    由于它是一个自动化的过程,因此需要的时间更少。因此,如果您需要高频率地创建 WAR 或 EAR,您可能应该使用脚本。它们将为您节省大量时间。

    所以基本上自动化和定制是使用 ANTscripts 的两个主要优势

    【讨论】:

      【解决方案2】:

      像 ANT 这样的外部脚本可以为您自动执行任务。当您所做的只是构建一个 .JAR 时,这似乎无关紧要,但当您开始做更多事情时,它会很有帮助。

      自动构建可以为您做到这一点:

      • 运行您的单元测试并创建一个您可以查看的报告。
      • 编译您的项目(“构建”)
      • 将 .JAR 移至其他目录。
      • 通过 FTP 上传到您的服务器。

      这意味着您当前所做的一切都可以通过双击 Ant 脚本来完成。 Eclipse 甚至支持 Ant,因此您可以在 IDE 中编辑和运行脚本。


      只是关于自动化哲学的编辑。假设您当前的流程大约需要 15 分钟来构建一个 .JAR 并将其上传到您的服务器:

      • 一次,15 分钟。
      • 两次,30 分钟。
      • 四次,60 分钟。

      你明白了。但是,等等,你说,编写一个 ANT 脚本……这更难 - 可能需要 8 个小时来了解 ANT 并编写一个有效的脚本。

      这是绝对正确的,但让自动化变得伟大的是,现在只需 0 分钟即可完成您的步骤。所以,这个过程看起来像:

      • 编写 ANT 脚本:480 分钟(8 小时)
      • 运行 ANT 脚本:0 分钟

      那么你怎么知道你是否需要自动化呢?只需想想您需要执行多少次手动过程。如果您只运行一次,那么比较将是 15 分钟与 480 分钟,您不应该编写脚本。但是,如果您认为您将执行该过程 40 次,那么比较是 600 分钟与 480 分钟,您最好编写一个脚本。

      (以上也排除了自动化方面的其他积极因素。例如,手动操作时很容易出错[创建 .JAR 时出错] - 但计算机一旦设置正确就永远不会出错。)

      【讨论】:

      • 还可以注意到,在使用 ANT 或 Maven 时,您通常会设置 IDE,因此配置文件用于设置 IDE 项目。所以本质上 - 没有区别。即使在您的 IDE 中,ANT 和 Maven 也会使用到一定程度。
      • 您好,感谢您的详细解释。但我的问题是直截了当的。我们在 Eclipse IDE 中开发应用程序,然后使用 IDE 中的 Build/Clean 选项编译/构建应用程序。但他们中的大多数会调用外部脚本来编译/构建。使用 IDE 和外部脚本编译应用程序有什么区别?
      • 没有区别。 Eclipse 使用不同的编译器,请参阅:stackoverflow.com/questions/3061654/…,但无论您如何构建应用程序,最终结果都应该相同。
      猜你喜欢
      • 1970-01-01
      • 2016-01-08
      • 1970-01-01
      • 2011-03-02
      • 1970-01-01
      • 2011-03-27
      • 1970-01-01
      • 1970-01-01
      • 2013-09-11
      相关资源
      最近更新 更多