我的 Grails 2 应用程序中有一些测试数据,其中包含一些特殊内容(图像、视频等),在构建 war 时不应包含这些内容。在开发时,这些文件存储在 web-app/content/
中。那么问题来了,在生产环境构建war时如何排除它们呢?
在搜索过程中,我遇到了 this blog post, covering the topic in an earlier Grails version 。不幸的是,它似乎不再起作用了,评论也对我没有帮助。
这是我现在尝试过的:
grails.war.resources = { stagingDir ->
delete { fileset(dir: "${stagingDir}/content/", includes: '*') }
}
也许我只是错过了一些东西?或者是否有更好的方法将测试数据与交付应用程序分开?
最佳答案
是的,我显然错过了一些东西。或者更准确地说,有时信息越少越好。经过更多的谷歌搜索 ant delete fileset 后,我发现 includes
属性已被弃用。删除后,content
目录中的所有文件都被删除。甚至目录结构仍然存在,这正是我想要的。
所以我现在的解决方案是:
grails.war.resources = { stagingDir ->
delete { fileset dir: "${stagingDir}/content/" }
}
编辑: 据我所知,grails 在底层使用了 ant,所以 Ant Delete Task是要看的东西。所以我想如果你也想删除空子目录,那就是(尽管没有检查):
delete(includeEmptyDirs: true) { fileset dir: "${stagingDir}/content/" }
或者如果您想删除content
文件夹本身:
delete(dir: "${stagingDir}/content/")
关于grails - 如何在 Grails 2.0 中从 war 文件中排除资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8564720/