如何从Grails 2.0中的war文件中排除资源?

Rol*_*der 3 grails resources build

我在Grails 2应用程序中有一些测试数据和一些特殊内容(图像,视频等),在构建战争时不应该包含这些内容.在开发时,这些文件存储在web-app/content/.所以问题是,在为生产环境构建战争时如何排除它们?

在我的搜索过程中,我发现了这篇博客文章,其中涉及早期Grails版本中的主题.不幸的是它似乎不再起作用,评论也没有帮助我.

这就是我现在尝试过的:

grails.war.resources = { stagingDir ->
    delete { fileset(dir: "${stagingDir}/content/", includes: '*') }
}
Run Code Online (Sandbox Code Playgroud)

也许我只是错过了一些东西?或者是否有更好的方法将测试数据与运送应用程序分开?

Rol*_*der 7

是的,我显然错过了一些东西.或者更确切地说,有时候信息越少越好.经过一段谷歌搜索后,ant delete fileset我发现该includes属性已被弃用.将其删除后,content目录中的所有文件都被删除了.甚至目录结构仍然存在,这正是我想要的.

所以我现在的解决方案是:

grails.war.resources = { stagingDir ->
    delete { fileset dir: "${stagingDir}/content/" }
}
Run Code Online (Sandbox Code Playgroud)

编辑:据我所知,grails在引擎盖下使用ant,因此需要查看Ant删除任务.所以我想如果你想删除空的子目录,它会(虽然没有检查):

delete(includeEmptyDirs: true) { fileset dir: "${stagingDir}/content/" }
Run Code Online (Sandbox Code Playgroud)

或者如果你想删除content文件夹本身:

delete(dir: "${stagingDir}/content/")
Run Code Online (Sandbox Code Playgroud)