我在我的辦公室裏看到很多地方使用ant tasks
將文件從一個地方移動到另一個地方,並對這些文件執行一些任務。但是,所有這些都可以使用shell scripts
完成。Ant任務vs Shell腳本
我的問題是,
在什麼情況下被ant
優於shell scripts
?
使用ant
比使用shell scripts
做相同的任務有什麼好處。
ant
的一個優點是,它可以在所有平臺上工作,除此之外還有什麼performance
相關的優點?
我在我的辦公室裏看到很多地方使用ant tasks
將文件從一個地方移動到另一個地方,並對這些文件執行一些任務。但是,所有這些都可以使用shell scripts
完成。Ant任務vs Shell腳本
我的問題是,
在什麼情況下被ant
優於shell scripts
?
使用ant
比使用shell scripts
做相同的任務有什麼好處。
ant
的一個優點是,它可以在所有平臺上工作,除此之外還有什麼performance
相關的優點?
你,爲什麼ANT應首選shell腳本的問題有兩個方面:
真的沒有性能優勢。 Java對命令行的使用很慢。
但是.....我建議不要演奏「表演」牌。讓我們假裝你的應用程序不支持windows(這很奇怪,因爲Java應用程序應該支持所有的平臺......):我已經看到shell腳本驅動的部署陷入混亂,企圖協調不同unix操作系統命令工作的各種方式。像「tar」,「awk」等命令可能會有細微的不同,這會導致腳本中的其他平臺支持邏輯。
總之我都不會用。我選擇使用groovy作爲通用腳本的混合方法。它是一種基於Java的腳本語言,嵌入了ANT的全部功能。作爲基於Java的腳本語言意味着它可以在所有平臺上工作。爲了公平起見,還應該注意到還有其他語言選擇。 Ruby肯定值得一提,因爲它產生了一套非常值得評估的配置管理技術。 (請參閱Chef和Puppet)
實際上,它歸結爲Windows支持。如果你是在Unix店,不希望引入新的東西給開發者,有兩個備選方案我已經成功使用:使用Git猛砸
普通老式shell腳本。 Git Bash帶有Git windows發行版(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腳本/ Makefiles。
'ant'只能在已安裝的平臺上運行,與shell腳本相同。由於'sh'是一個標準工具,它更有可能被安裝,所以我質疑這是'ant'的一個優點。許多開發人員可能編寫不符合標準的shell腳本肯定是個問題,但將其與缺乏可用性等同起來是不正確的。 –
你可以在windows平臺上安裝'sh'嗎?你不能。但是'螞蟻'可以。 – g4ur4v
如果您已經在使用Ant(當您的軟件使用Ant作爲構建工具時經常發生這種情況),請使用Ant任務執行操作。如果您不使用Ant並且想要選擇工具,請選擇shell腳本或其他腳本語言。 – coolcfan