如何在Gradle中排除目录下的所有文件?

3
packagingOptions {
 exclude 'org/apache/commons/codec/language/bm/gen_approx_portuguese.txt'
}

例如,这个示例将排除1个文件。但如何排除目录下的所有文件呢?
比如: org/apache/commons/codec/language/bm/
文件夹? . 不起作用 :)

可能是Gradle 1.2:在资源源集下排除目录的重复问题。尽管这是源集,但它仍然涉及使用排除功能。 - Mr00Anderson
这对我没用。我试过了。打包选项和源集之间有什么区别吗?实际上,它给我带来了很多 APK xxxxxx 中复制的重复文件,所以我尝试排除重复的文件。但是在同一目录下有太多文件。所以我尝试将它们全部排除掉。 - Meng Tim
2个回答

13

通配符可用于对目录中的多个文件执行操作。请参见此处:

packagingOptions {
 exclude 'org/apache/commons/codec/language/bm/*'
}

您也可以通过以下方式排除文件/目录而无需指定完整路径:

packagingOptions {
    exclude '**/language/bm/*'
}

注意:这将排除路径中任何位置的language/bm/


0

这适用于 Kotlin DSL(build.gradle.kts)和 AGP(Android Gradle Plugin)版本 7.0.0 及更高版本:

android {
  // ...
  packagingOptions {
    resources.excludes += "org/apache/commons/codec/language/bm/*"
    // OR
    // resources.excludes += setOf(
    //   "org/apache/commons/codec/language/bm/*"
    // )
  }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接