gant其实是ant的一个扩展,但是在逻辑判断等方面要强于ant,用gant做脚本时,需要用到gant-1.1.0_groovy-1.5.2.jar,只是在语法结构有点区别,以下是一个gant的简单示例:
build.gant
includeTargets << new File('build.ext.gant')
Ant.echo(message : 'running build.gant')
Ant.property(file : 'build.properties')
def antProperty = Ant.project.properties
def binDir='bin'
def srcDir='/opt/work'
target(init : 'init target') {
echo(message : 'Executing init target')
}
target(hello : 'say hello target') {
depends(init,ext)
echo(message : antProperty.'echo.msg')
int alt=new Random().nextInt(3)
if(0==alt){
echo(message: 'hello world')
}else if(1==alt){
echo(message: 'hello gant')
}else{
echo(message: 'hello Daniel')
}
}
target(test:'run test'){
echo(message:'delete binDir')
delete(dir:"${binDir}")
mkdir(dir:"${binDir}")
copy(todir:"${binDir}"){
fileset(dir:"${srcDir}"){
include(name:"**/*.xml")
}
}
}
setDefaultTarget(hello)
build.ext.gant
target(ext:'ext target'){
echo(message:'i am ext target')
}
build.properties
echo.msg=hello, Daniel
build.gant
includeTargets << new File('build.ext.gant')
Ant.echo(message : 'running build.gant')
Ant.property(file : 'build.properties')
def antProperty = Ant.project.properties
def binDir='bin'
def srcDir='/opt/work'
target(init : 'init target') {
echo(message : 'Executing init target')
}
target(hello : 'say hello target') {
depends(init,ext)
echo(message : antProperty.'echo.msg')
int alt=new Random().nextInt(3)
if(0==alt){
echo(message: 'hello world')
}else if(1==alt){
echo(message: 'hello gant')
}else{
echo(message: 'hello Daniel')
}
}
target(test:'run test'){
echo(message:'delete binDir')
delete(dir:"${binDir}")
mkdir(dir:"${binDir}")
copy(todir:"${binDir}"){
fileset(dir:"${srcDir}"){
include(name:"**/*.xml")
}
}
}
setDefaultTarget(hello)
build.ext.gant
target(ext:'ext target'){
echo(message:'i am ext target')
}
build.properties
echo.msg=hello, Daniel