Ant任务与Shell脚本

时间:2013-06-02 11:59:09

标签: performance shell ant

我在我的办公室看到很多地方,ant tasks用于将文件从一个地方移动到另一个地方,并且还对这些文件执行某些任务。但是,所有这些都可以通过shell scripts来完成。

我的问题是,

ant优先于shell scripts的情况下?

使用ant而非shell scripts执行相同的任务有什么好处。

ant的一个优点是它适用于所有平台,除此之外还有performance相关优势吗?

2 个答案:

答案 0 :(得分:2)

关于为什么ANT应该优先于shell脚本的问题是双重的:

  1. ANT是一种广泛采用的工具,很可能 已经安装在开发人员的工作站上。相比一个 它的主要前辈,制作,ANT更加标准化 跨平台。
  2. ANT是开发人员熟悉的工具。用于构建代码,以便他们经常扩展ANT脚本以将其应用程序部署为 好。实际上,许多供应商为此目的提供ANT任务。
  3. 真的没有性能优势。 Java的命令行使用很慢。

    但.....我建议不要玩“性能”牌。让我们假装你的应用程序不支持windows(考虑到Java应用程序应该支持所有平台,这很奇怪......):我看到shell脚本驱动的部署会陷入混乱,试图协调不同unix操作系统命令的各种工作方式。像“tar”,“awk”等命令可以略有不同,这会在脚本中产生额外的平台支持逻辑。

    总之,我不会使用。我选择使用groovy进行通用脚本编写的混合方法。它是一种基于Java的脚本语言,嵌入了ANT的全部功能。作为基于Java的脚本语言意味着它可以在所有平台上运行。为了公平起见,还应注意还有其他语言选择。 Ruby当然值得一提,因为它产生了一套非常值得评估的配置管理技术。 (请参阅ChefPuppet

答案 1 :(得分:0)

在实践中,它归结为Windows支持。如果您在Unix商店并且不想向开发者介绍新内容,那么有两种选择我已成功使用:

  • 使用Git Bash的普通旧shell脚本。 Git Bash附带了Git窗口分发版(http://git-scm.com/)。如果您正在进行自动化,则可以启动shell脚本,如下所示:" C:\ Program Files(x86)\ Git \ bin \ sh.exe" --login -i - ./BUILD

  • 节点脚本。再一次,它是一个简单的安装程序,它的javascript,你可以使用像ShellJS(https://github.com/arturadib/shelljs)这样的东西来接近Unix shell脚本/ Makefile。