gradle - 如何仅从sourceSet中的一个srcDir中排除文件?

标签 gradle build.gradle

我有一个Java项目,其中包含两个资源目录resraw。我已经在build.gradle中设置了它,如下所示:

sourceSets.main.resources.srcDirs = ['res', 'raw']

这两个目录都包含一个名为graphics的子目录。问题是我想从graphics中排除raw目录,而不是从res中排除。

我努力了:

sourceSets.main.resources.srcDirs = ['res', 'raw']
sourceSets.main.resources.exclude 'raw/**/graphics'

但这不起作用,因为exclude模式相对于srcDirs

如何仅为exclude目录设置raw模式?

最佳答案

无法使用的原因是因为表达式:sourceSets.main.resources.exclude 'raw/**/graphics',创建了文件的新实时 View ,其中排除的文件不存在。

简而言之,它不会影响sourceSets.main.resources

要使其“永久”,您必须使用常规的DSL语法:

sourceSets.main {
    resources {
        srcDirs 'res', 'raw'
        exclude 'raw/**/graphics'
    }
}

关于gradle - 如何仅从sourceSet中的一个srcDir中排除文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56839222/

相关文章:

android - 如何让 Dagger 1 和 Dagger 2 在一个 Android 项目中共存?

gradle - 在 gradle 中将许多任务组合在一起

android - 当我想导入项目时成绩同步失败

gradle - 如何使用Jacoco仅在Gradle项目中获取特定类的代码覆盖率

android - list 合并失败 : uses-sdk:minSdkVersion 9 cannot be smaller than version L declared in library com. android.support

android - 应用程序 :dexdebug error Android

gradle - Android Gradle 版本 : how to set global variables

Android Studio 1.0.0 - 未能找到 butterknife :6. 0.0

android - maven-metadata.xml 在构建时不断收到请求

java - Gradle 包含源文件