11 2012 档案
摘要:Link : http://stackoverflow.com/questions/11580057/using-class-from-groovy-file-located-in-another-folder-gradle If you change your build.gradle to simply be task hello << { def utils = new ...
阅读全文
摘要:今天看一用法可以实现Thread-safe closure in Groovy class Stock { def order Stock(orderObject) { order = orderObject } def shares(closure) { closure = closure.clone() // Ensure thread safity closure.delegate = order closure() order } }
阅读全文
摘要:Groovy里with 关键字的使用 def calendar = Calendar.instancecalendar.with { clear() set MONTH, JULY set DATE, 4 set YEAR, 1776 println time}
阅读全文
摘要:desc "preview" task :preview do puts "preview" end desc 'want to say hello' task :hello , [:name, :from] => :preview do |t, args| puts "hello world, #{args[:name]} from #{args[:fro...
阅读全文
摘要:Groovy里的Optional函数可以不像C++那样,一定得放在参数列表的最后,这个是一大改进 class Person{ def age, name Person(n="buhaiqing", a ){ name =n age = a } } def o = new Person(23) ...
阅读全文
摘要:1. 简单的数据驱动测试 [ ["andy", 32], ["haiqing", 32], ] .each { name, age -> println "name is " + name + " age is " + age } 怎么样,简单吧!!
阅读全文
摘要:ruby comes with a set of predefined variables$: = default search path (array of paths)其他Ruby特殊变量:$! 最近一次的错误信息$@ 错误产生的位置$_ gets最近读的字符串$. 解释器最近读的行数(line number)$& 最近一次与正则表达式匹配的字符串$~ 作为子表达式组的最近一次匹配$n 最近匹配的第n个子表达式(和$~[n]一样)$= 是否区别大小写的标志$/ 输入记录分隔符$\ 输出记录分隔符$0 Ruby脚本的文件名$* 命令行参数$$ 解释器进程ID$? 最近一次执行的子进程
阅读全文
摘要:Underscore 一个非常实用的JavaScript库,提供许多编程功能的支持,就像你期望 Prototype.js (或者 Ruby), 有这些功能且不扩展任何JavaScript的原生对象使用起来非常方便。 在FireBug里varo=[1,2,3];console.log(_.select(o,function(n){returnn%2!==0}));//output:[1,3]underscore.js对于想用JavaScript实践Functional Programming的同学非常实用。 以后会大力使用它。
阅读全文
摘要:def test(a,b){ return a+b } 如果你已有个List,又厌倦了一个一个地传参,你可以使用 test(*[2,3]) NOTE:这里的*会自动地把一个List对象进行展开。但注意List里元素的个数,必须和函数参数的个数相等才行。
阅读全文
摘要:inject是一个累积的过程,比方说实现从1到9的累加 def result = (1..9).inject(0){ sum , i -> sum += i } print result
阅读全文
摘要:enumMethodologies{Evo(5),XP(21),Scrum(30);finalintdaysInIterationMethodologies(days){daysInIteration=days}defiterationDetails(){println"${this}recommends$daysInIterationdaysforiteration"}}for(methodologyinMethodologies.values()){methodology.iterationDetails()}请注意这里表示Key和Value的方式
阅读全文
摘要:在Groovy里可以很方便的得到命令行的返回值(exitValue函数):defcmd="ls-lrt"defproc=cmd.execute()proc.waitFor()//用以等待外部进程调用结束printlnproc.exitValue()如果需要在特定的folder运行可以用下面的代码path -- 相当于运行目录cmd.execute(null, new File(path))
阅读全文
摘要:Apache Buildr是类似Ruby Rake的Build System。 和我之前学习的Groovy Gradle很像。准备在接下来的一段时间里加以学习。这次先介绍如何安装buildr. 我之前已经有在自己的机器上安装过JRuby,所以这次就直接用JRuby来安装。安装步骤也很简单:jruby –S gem install buildr 即可。可通过运行 buildr --verion来验证是否安装成功。Ruby和JRuby分别维护者不同的Gem Repository,所以你也可以以Ruby的方式下去安装,这里就不多述了。
阅读全文
摘要:Ant的xmlproperty的Task能直接读取一个xml文件以生成相应的property,而后可以使用类似XPath的语法遍历。很是方便,以前没有注意到这功能。<xmlpropertyfile="somefile.xml"/>更多具体的内容可以参看:http://ant.apache.org/manual/Tasks/xmlproperty.html
阅读全文
摘要:Maven内置变量说明:${basedir} 项目根目录${project.build.directory} 构建目录,缺省为target${project.build.outputDirectory} 构建过程输出目录,缺省为target/classes${project.build.finalName} 产出物名称,缺省为${project.artifactId}-${project.version}${project.packaging} 打包类型,缺省为jar${project.xxx} 当前pom文件的任意节点的内容
阅读全文
摘要:Maven的archetype Plugin可能大家都听过,但不一定都能很好地用好它。缺省地如果你使用mvnarchetype:generate会从maven的Repository里查找所有支持的arche types,大概有500~600个。正因为是太多了,所以查找起来很是不方便。其实平时常用的arche type也就那么几个。像我会用到的:1.simple start2. web app3. Groovy basic很自然的就会考虑,是不是能什么简便的方法只需要从这3个组成的list里选择就可以了。 答案当然是: Yes实现步骤如下:(本机的Maven Repository目录在C:\Us
阅读全文
摘要:可以使用File对象中的traverse()函数实现 importgroovy.io.FileTypedefdir=newFile('.')dir.traverse(type:FileType.FILES,nameFilter:~/.*\.ini/){printlnit}
阅读全文
摘要:Groovy作为JVM之上的一种Script语言,越来越流行了。很自然的会想到他能不能跟Ant能集成起来一起发挥功效。答案是:Yes你需要先把Groovy安装目录下(C:\Groovy\Groovy-2.0.1\embeddable)groovy-all-xxx.jar拷贝到Ant的lib目录下。然后我们就可以在build.xml中使用Ant了第一步 taskdef引用Groovy的类库 <taskdefname="groovy" classname="org.codehaus.groovy.ant.Groovy"/>第二步 定义一个Targ
阅读全文
摘要:The Antscripttask allows you to implement a task in a scripting language. If you have JDK 1.6 installed, Ant can execute JavaScript without needing any additional dependent libraries. For example, this JavaScript reads an Ant property value and then sets another Ant property depending on a condition
阅读全文
摘要:<propertyenvironment="env"/><echomessage="${env.ANT_HOME}"/>能把所有的环境变量都导入成Ant的property
阅读全文
摘要:上面的语句在Ant执行后,Ant会把相对路径转换成绝对路径,并会根据你当前OS的Path分隔符进行相应的转换(Windows和Unix使用的是不同的分隔符)。是挺有趣的一个Feature,以前没有注意到过这个功能点。除此以外,还可以考虑用propertyfile task 上面的示例是把akey,adate等值存到my.property文件中同样也可以从文件读取一些property
阅读全文
摘要:Ant里的property和Java里的变量是不太一样,它是immutable,也就是不能改变的。所以说如果你在build.xml里定了一个search.string的property两遍。运行后的结果是只会输出第一次设定的结果。这个是以前没有注意到的。<targetname="test"><propertyname="search.string"value="DETECTEDPOTENTIALMEMORYLEAK"/><propertyname="search.string"valu
阅读全文

浙公网安备 33010602011771号