2012-09-27 38 views
7

我有一個外部庫需要的開發相關目錄src/main/resources/certs/test。這有一些在生產版本中不需要的證書文件。Gradle 1.2:排除資源下的目錄sourceSets

目前,我排除一切目錄下,在build.gradle以下塊:

sourceSets { 
    main { 
     resources { 
      exclude '**/test/*' 
     } 
    } 
} 

這確實是工作做好,但留下難看的空目錄test躺在那裏。我有什麼選擇在最終的戰爭中不包括這個目錄?

我試過排除'**/test',但它根本不起作用。

我用戰爭插件和搖籃1.2

回答

26

使用搖籃1.1,這個工作對我來說:

apply plugin: 'war' 

sourceSets { 
    main { 
     resources { 
      exclude '**/test/*' 
      exclude 'certs/test' 
     } 
    } 
} 
+1

一旦我清理它的工作。 'gradle clean build' – Philippe

+0

您可以使用以下命令來排除每個文件和文件夾和子文件夾:'resources {exclude'*。*'exclude'** /'}' –

0

一個共同謨佈局是把測試文件的test源設置下,這樣你就不必從main源集合中排除。

Gradle documentation,默認的項目佈局是這樣的:

src/main/java  Production Java source 
src/main/resources Production resources 
src/test/java  Test Java source 
src/test/resources Test resources 
+0

我知道標準的佈局。問題不是關於我的項目的佈局和它的標準,而是Gradle funcionality排除目錄。我可以重新格式化我的項目,但最初的問題仍然存在。 –

+0

這種佈局是標準的,也是[完全不切實際](http://blog.ltgt.net/maven-is-broken-by-design)(搜索「項目佈局」)。拋棄它是我每天都喜歡的事情。 – maaartinus

4

我有生產檔案類似的問題在一個JAR文件(儘管我不是測試文件)。我用下面的方法解決了這個問題:

jar { 
    exclude ("DIRECTORY-TO-EXCLUDE/**") 
} 

例如

jar { 
    exclude ("test/**") 
}