前一篇随笔提到目前计划系统学习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分钟还是相当可观的。