2011-12-19 82 views
3

我在Grails 2应用程序中使用了一些特殊内容(图片,视频等)的测试数据,这些数据在构建战争时不应包括在内。在开发时,这些文件存储在web-app/content/。所以问题是,如何在为生产环境打造战争时排除它们?如何从Grails 2.0中的war文件中排除资源?

在我的搜索过程中,我来到了this blog post, covering the topic in an earlier Grails version。不幸的是,它似乎没有工作了,评论也没有帮助我。

这是我已经尝试了现在:

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

也许我只是失去了一些东西?或者还有更好的方法来分离测试数据和运送应用程序?

回答

7

是的,我明显失去了一些东西。或者更确切地说,有时候更少的信息更多。在ant delete fileset的搜索结果中,我看到includes属性已被弃用。删除后,content目录中的所有文件都被删除。即使目录结构仍然存在,这正是我想要的。

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

grails.war.resources = { stagingDir -> 
    delete { fileset dir: "${stagingDir}/content/" } 
} 

编辑: 据我所知Grails使用蚂蚁引擎盖下,所以Ant Delete Task是看的东西。所以我想,如果你想删除空的子目录太多,这将是(未尽管选中):

delete(includeEmptyDirs: true) { fileset dir: "${stagingDir}/content/" } 

或者如果u要删除content文件夹本身只是:

delete(dir: "${stagingDir}/content/") 
+0

谢谢,伙计。你有没有找到解决方案来删除文件夹? Regards – Lucas 2013-08-23 20:49:07

+0

看看我的编辑。我从来没有检查过它是否真的起作用。 – 2013-09-05 06:22:55

+0

证实,罗兰。我测试了它 'delete(includeEmptyDirs:true){fileset dir:“$ {stagingDir}/content /”}' 删除空的子目录成功。再次感谢你,我的朋友。 – Lucas 2013-09-27 14:37:21

相关问题