与IDE for Java相比,我们还需要Ant吗?

时间:2011-10-25 04:46:27

标签: eclipse ant

在我深入研究Ant并使用它进行简单的练习(编译,单元测试,包)之前不久。现在我的日常工作是在Eclipse下进行java开发,通常的工作都可以通过Eclipse的功能完成:及时编译,点击按钮进行部署,各种向导..

所以我想知道在Eclipse下我们是否需要Ant。 如果是这样,我们应该在哪个方面使用Ant和Eclipse。

4 个答案:

答案 0 :(得分:10)

构建应用程序并不仅仅是在IDE中构建应用程序。您需要设置可以运行的自动构建和部署方法,例如,持续集成和部署。构建的包必须被部署到各种环境并最终生产。你不能用你自己的盒子建造它们。您无法使用IDE构建它。您需要单独的构建系统。这就是像ANT这样的构建工具的用武之地。

另请注意,IDE进行构建,部署的功能有限,这不是他们的优势。但是,可以使用ANT及其构建脚本和run them out of eclipse。这样,您就可以为本地(开发人员)构建和主构建过程提供一组脚本。 ANT基于JAVA,您还可以通过编写自定义任务等来满足您的构建工具。

此外,当您为构建系统使用标准ANT之类的东西时,您可以移动到其他IDE,如Intellij IDEA,并仍然使用您知道的构建系统。

答案 1 :(得分:4)

如果可以通过IDE构建,是否需要Ant?当然不是!你可以自己看看。

您是否仍然使用标准工具进行IDE独立构建?当然!

注意我没有说 Ant 。有许多构建工具,如Maven或Gradle,用于构建Java程序。但是,您有理由需要IDE独立构建系统:

  • 您有持续集成服务器:您有一台。对?如果你没有得到一个。每次将更改提交到版本控制系统时,Continuous Integration Server都会自动构建项目(并运行每个测试)。它捕捉到了错误。它还提供 OFFICIAL BUILD 。没有了它在我的机器上工作了!借口。如果Continuous Integration Server无法构建并成功运行测试,则该软件不是很好。
  • 您还有其他人需要在不同环境中的另一台计算机上使用您的项目:IDE的问题在于它特定于您的系统。其他人检查你的项目,他们可能正在使用不同的IDE。它们的设置可能略有不同。像Ant这样的独立构建脚本语言可以保证他们可以按照预期重建项目。

如果您与其他人共享项目,则需要一种独立的标准方法,以便能够构建该项目并确切知道该构建需要什么才能工作。 IDE可以隐藏该信息。

答案 2 :(得分:2)

我是每天使用Ant的基准测试人员。我们的环境有7台试验机和1台控制台机器。对于每次测试运行,ant脚本更新工作副本,重新启动数据库,构建具有适当属性的产品和Grinder,并将它们部署到计算机,然后启动它们和监视软件。使用1000行构建文件,我只需在控制台机器的终端中键入“ant A B C D E”类似的行。我认为在eclipse或NetBeans等IDE中执行此操作并不是一个好主意。

另外,在我公司的产品中,蚂蚁被广泛使用。我们使用ant为基准测试构建样本数据;我们使用ant来更新将与我们的产品捆绑在一起的Tomcat;我们还使用ant来构建和运行selenium测试。

更重要的是,当您想要发布源代码时,包括IDE项目文件不是一个好主意,因为有很多IDE。如果用户只想从您的最新代码中获取新版本(如果您不提供每晚构建),该怎么办?提供一组ant(或其他构建工具)构建文件是个好主意。有了这个,您可以管理构建的类路径。

答案 3 :(得分:1)

这里最简短的答案是灵活性。 IDE可能带有预定义的功能,甚至可以允许您使用向导选择一些选项。这就像使用Dreamweaver或此类工具生成html一样。它永远不会像纯粹的东西那样灵活。例如,NetBeans使用下面的Ant。

引自:Netbeans: Build Tools

  

默认的NetBeans IDE项目系统直接构建在上面   Ant构建系统。所有项目命令,例如“Build”   项目“和”在调试器中运行文件“,调用项目的Ant中的目标   脚本。因此,您可以在IDE之外构建和运行项目   正如它在IDE中构建和运行一样。

即使你为此目的使用工具,你很可能仍然需要刷新。所以,我所说的是,IDE为你做的只是你可以用纯蚂蚁或maven做的一部分(如果你使用它)。对于编译和运行等简单任务,IDE做得非常好!但是,如果您的用例非常复杂,那么在CI IDE上进行部署将无济于事。您需要构建工具的整体灵活性。