12

我有src/main/resources/certs/test一个外部库所需的开发相关目录。这有一些生产构建中不需要的证书文件。

目前,我使用以下块排除该目录下的所有内容build.gradle

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

这可以很好地工作,但会留下丑陋的空目录test。在最终战争中不包含此目录的选项是什么?

我试过 exclude '**/test',但它根本不起作用。

我使用战争插件和 Gradle 1.2

4

3 回答 3

32

使用 Gradle 1.1,这对我有用:

apply plugin: 'war'

sourceSets {
    main {
        resources {
            exclude '**/test/*'
            exclude 'certs/test'
        }
    }
}
于 2012-09-28T02:47:18.067 回答
9

我对 JAR 文件中的生产文件有类似的问题(尽管我的不是测试文件)。我用以下方法解决了它:

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

例如

jar {
    exclude ("test/**")
}
于 2014-11-10T18:55:42.450 回答
0

一个常见的项目布局是将测试文件放在test源集下,这样您就不必将它们从main源集中排除。

Gradle 文档中,默认的项目布局是这样的:

src/main/java       Production Java source
src/main/resources  Production resources
src/test/java       Test Java source
src/test/resources  Test resources
于 2012-09-27T15:14:04.083 回答