前一篇隨筆提到目前計劃系統學習Python和Groovy,有什么比實際使用更好的學習途徑呢?1年多以前,我曾經在
另一篇隨筆提到:當ANT不夠用時,可以用JRuby+Antwrap,這是一個可行的方案,并且經過了長期實戰的考驗。不過Groovy可以做的更好(感興趣的朋友可以和Antwrap版對照一下):
?1?#!/usr/bin/env?groovy
?2?
?3?ant?=?new?AntBuilder()
?4?root?=?":pserver:cvsuser:password@10.10.10.1/cvsrepo/SampleProduct"
?5?
?6?def?checkout()?{
?7?????ant.cvs(cvsroot:root,command:"checkout?-A","package":".",dest:"cvsoriginal",compressionlevel:"9")
?8?}
?9?
10?def?update()?{
11?????ant.cvs(cvsroot:root,command:"update?-A?-d","package":".",dest:"cvsoriginal",compressionlevel:"9")
12?}
13?
14?def?compile(project)?{
15?????ant.javac(srcdir:"cvsoriginal/$project/src",destdir:"cvsoriginal/$project",target:"1.5",encoding:"GBK")
16?????ant.copy(todir:"cvsoriginal/$project")?{
17?????????fileset(dir:"cvsoriginal/$project/src")?{
18?????????????exclude(name:"**/*.java")
19?????????}
20?????}
21?????ant.jar(destfile:"build/$project.jar",basedir:"cvsoriginal/$project",manifest:"MANIFEST.MF")?{
22?????????exclude(name:"src/**")
23?????}
24?}
25?
26?//?to?actually?call?your?target
27?checkout?root
28?
代碼更緊湊,與Java的集成更無縫。只需要簡單的培訓,有Java基礎的朋友就能上手,不必再額外學習和習慣Ruby的語法,不用gem install,也不用去monkey-patch個別文件來集成和打包Ant、Antwrap和JRuby,只需要一個groovy-all-x.x.x.jar加上自己的腳本即可輕松搞定。
[2008-08-26 19:25:00 更新] 經過實際環境測試,原來JRuby(1.1)+Antwrap需要24分鐘完成的構建,改用Groovy(1.5.6)后,僅需要16分鐘,對于需要經常處理構建的項目和產品來說,這8分鐘還是相當可觀的。