【问题标题】:Use module's packackingOptions when importing module with gradle使用 gradle 导入模块时使用模块的 packackingOptions
【发布时间】:2020-07-26 23:54:03
【问题描述】:

我想将模块 A 包含到模块 B 中。 模块 A 的 build.gradle 包括需要执行的 packackingOptions。 这些 packackingOptions 在我构建模块 A 时执行。当我构建模块 B 时它们不会执行,它导入模块 A。

在将模块 A 导入模块 B 时,如何确保模块 A 的 build.gradle 中的 packackingOptions 也被执行?

模块 B 的 build.gradle 如下所示:

dependencies {
  implementation project(':A')
}

模块 A 的 build.gradle 如下所示:

android {
 packagingOptions {
        pickFirst 'assets/**'
    }
}

【问题讨论】:

  • 这能回答你的问题吗? how to reference an asset in a library project
  • 不,在模块 A 中,我有两个包含相同资产的第三方依赖项。因此我必须告诉 gradle 只选择一个重复的资产。
  • 嗯,资产实际上是从库中包含的?我从来没有做到这一点,你能详细说明你是怎么做到的吗?你还能再描述一下依赖图吗?哪个模块包含什么?
  • 第一部分没关系,显然现在可以使用 gradle

标签: android gradle import module


【解决方案1】:

我设置项目结构如下:

buildscript-test-app
         |
         |
buildscript-test-lib
 |             \------------------------\
 |                                      |
buildscript-test-lib-sub-a    buildscript-test-lib-sub-b

lib-sub-* 都包含具有不同内容的assets/foo.txt

build.gradlebuildscript-test-lib:

应用插件:'com.android.library'

android {
    // omitted default config stuff

    packagingOptions {
        pickFirst 'assets/**'
    }

}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation project(':buildscript-test-lib-sub-a')
    implementation project(':buildscript-test-lib-sub-b')
}

build.gradlebuildscript-test-app

apply plugin: 'com.android.application'

android {
    // omitted default config stuff
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation project(':buildscript-test-lib')
}

Gradle 总是从 buildscript-test-lib-sub-a 中选择文件,而不管依赖项的顺序如何(可能是因为字母顺序)。

如果这不起作用,您的构建脚本中的其他内容一定是错误的。如果不起作用,您能否提供有关您的应用模块和库模块的build.gradle 的更多详细信息?

也许你在你的应用程序中覆盖了pickFirsts。如果是这种情况,你应该代替pickFirsts = [somevalue]pickFirst += 'foo'pickFirst = 'foo'

【讨论】:

    猜你喜欢
    • 2010-10-17
    • 1970-01-01
    • 2011-12-29
    • 1970-01-01
    • 2019-10-16
    • 2020-05-16
    • 2013-10-24
    • 2021-08-01
    相关资源
    最近更新 更多