2011-12-19 78 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