[Tips] "When ANT is not enough"升级版 - Groovy to the rescue!


前一篇随笔提到目前计划系统学习Python和Groovy,有什么比实际使用更好的学习途径呢?1年多以前,我曾经在 另一篇随笔提到:当ANT不够用时,可以用JRuby+Antwrap,这是一个可行的方案,并且经过了长期实战的考验。不过Groovy可以做的更好(感兴趣的朋友可以和Antwrap版对照一下):

 1  # !/usr/bin/env groovy
 2 
 3  ant  =  new AntBuilder()
 4  root  =   " :pserver:cvsuser:[email protected]/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分钟还是相当可观的。


你可能感兴趣的:([Tips] "When ANT is not enough"升级版 - Groovy to the rescue!)