Android Gradle 库构建:在生成的 aar 中包含和排除 jar 中的文件

Android Gradle library build: Include & exclude files from the jar inside the generated aar

我通过使用 Gradle 构建 aar 来导出 Android 库,并且我对 aar 中的 jar 有要求:基本上我需要jar 以反映项目中已存在的以下文件结构(jpeg 文件应在 java 包内与 .class 文件一起):

project_name
           |
           module_name
                     |
                     src
                       |
                       main
                          |
                          java
                             |
                             package_to_include
                                              |
                                              java_files
                                              jpeg_files
                             package_to_exclude

这是 build.gradle 脚本的相关部分:

apply plugin: 'com.android.library'    
android {
    ... 
    sourceSets {
        main {
            java {
                srcDir 'src/main/java'
                exclude 'package_to_exclude/**'
                resources.includes = [ 'package_to_include/*.jpeg' ]
            }
            resources {
                srcDir 'src/../lib'
            }
        }
    }
}

结果:exclude 部分有效,include 无效:在 package_to_include 的 jar 中只有 java 个源代码文件作为 .class 个文件。 jpeg 根本不在罐子里。

顺便说一句,我对双星号 (**) 运算符不是很熟悉。也许这就是解决的方向?

谢谢,

您怀疑 ** 是缺少的组件。猜测您的包含路径可能缺少 package_to_include.

src/main/java 前缀

**表示任意文件夹。例如:

src/main/java/package_to_include/image.jpg
src/main/res/image.jpg
// both would match
**/image.jpg

这行也很奇怪 srcDir 'src/../lib' 因为它和 srcDir 'lib'

一样