我在我的办公室看到很多地方,ant tasks
用于将文件从一个地方移动到另一个地方,并且还对这些文件执行某些任务。但是,所有这些都可以通过shell scripts
来完成。
我的问题是,
在ant
优先于shell scripts
的情况下?
使用ant
而非shell scripts
执行相同的任务有什么好处。
ant
的一个优点是它适用于所有平台,除此之外还有performance
相关优势吗?
答案 0 :(得分:2)
关于为什么ANT应该优先于shell脚本的问题是双重的:
真的没有性能优势。 Java的命令行使用很慢。
但.....我建议不要玩“性能”牌。让我们假装你的应用程序不支持windows(考虑到Java应用程序应该支持所有平台,这很奇怪......):我看到shell脚本驱动的部署会陷入混乱,试图协调不同unix操作系统命令的各种工作方式。像“tar”,“awk”等命令可以略有不同,这会在脚本中产生额外的平台支持逻辑。
总之,我不会使用。我选择使用groovy进行通用脚本编写的混合方法。它是一种基于Java的脚本语言,嵌入了ANT的全部功能。作为基于Java的脚本语言意味着它可以在所有平台上运行。为了公平起见,还应注意还有其他语言选择。 Ruby当然值得一提,因为它产生了一套非常值得评估的配置管理技术。 (请参阅Chef和Puppet)
答案 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。