【问题标题】:grails 2.5, how to delete files in build script with antgrails 2.5,如何使用ant删除构建脚本中的文件
【发布时间】:2015-11-14 21:27:14
【问题描述】:

我们需要打包战争、迁移目录和源代码。

我们首先运行“圣杯战争” 然后我们运行“grails our-package”

其中 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")

}

以上内容不起作用 - 没有任何内容被删除。我们假设文件集是答案,但不知道如何使用它们。

例如我们有这个:

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")
    }
}

但它会引发错误。

有什么想法吗?

奖金问题。

“圣杯战争”不会删除旧的战争。我不希望用户必须输入 3 个命令:

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

如果我们能够掌握当前战争文件将被调用的内容(即应用程序名称和应用程序版本),那么我们可能有一种方法可以删除所有战争文件,除了我们想要在“我们的-包”

  1. 有没有办法从其中一个 ant(如构建脚本)中获取 app.version 的句柄

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

【问题讨论】:

    标签: grails ant


    【解决方案1】:

    试错占上风,以下不是优雅的,但有效:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-18
      • 2012-10-05
      • 1970-01-01
      • 1970-01-01
      • 2017-02-11
      • 2010-11-12
      相关资源
      最近更新 更多