grails 2.5,如何使用ant删除构建脚本中的文件

时间:2015-11-14 21:27:15

标签: grails ant

我们需要打包战争,迁移目录和来源。

我们首先运行“grails war” 然后我们运行“grails our-package”

我们的包装是我们自己的grails包装脚本。

一直在尝试添加一个步骤,从grails应用程序下的目标目录中清除旧的构建工件,而不删除war文件等。

target ("clean-old" : "cleans artifacts from prev.builds") {
   println "cleaning up zips and tars"
   ant.delete(file: "target/*.zip")
   ant.delete(file: "target/*.gz")

}

以上不起作用 - 没有删除任何内容。我们假设文件集是答案,但无法弄清楚如何使用它们。

E.g。我们有这个:

ant.fileset(dir: "target") {
    ant.include("*.zip")
    ant.include("*.gz")
}

但是如何实际删除文件?

我们对此盲目猜测:

ant.delete() {
    ant.fileset(dir: "target") {
        ant.include("*.zip")
        ant.include("*.gz")
        ant.include("*.tar")
    }
}

但它会引发错误。

有什么想法吗?

奖金问题。

“grails war”并未删除旧战争。我不希望用户输入3个命令:

grails clean-old-war
grails war
grails our-package

如果我们能够处理当前war文件将被调用的内容(即应用程序名称和应用程序版本),那么可能有一种方法可以删除除“我们想要的”之外的所有war文件-package“

  1. 有没有办法从其中一个ant内部获取app.version,如构建脚本

  2. 有没有办法删除除指定的所有战争?

1 个答案:

答案 0 :(得分:0)

试验和错误盛行,下面不优雅,但有效:

println "cleaning up zips and tars"
ant.delete(dir:"target", includes: "*.zip")
ant.delete(dir:"target", includes: "*.gz")