【问题标题】:Android Gradle library build: Include & exclude files from the jar inside the generated aarAndroid Gradle 库构建:在生成的 aar 中包含和排除 jar 中的文件
【发布时间】:2016-01-17 10:45:18
【问题描述】:

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

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'
            }
        }
    }
}

结果:排除部分有效,包含无效:在 package_to_include 内的 jar 中,只有 java 源代码文件为 .class 文件。 jpeg 根本不在罐子里。

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

谢谢,

【问题讨论】:

    标签: android groovy gradle android-gradle-plugin build.gradle


    【解决方案1】:

    您怀疑** 是缺少的组件。猜测包含的路径可能缺少package_to_includesrc/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'一样

    【讨论】:

    • 1.由于srcDir 'src/main/java',我接下来只能在package_to_include的范围内使用。
    • 2.我仍然不明白为什么它不起作用,因为我应该如何使用包含?
    猜你喜欢
    • 1970-01-01
    • 2016-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-24
    相关资源
    最近更新 更多