Использовать параметры упаковки модуля при импорте модуля с Gradle - PullRequest
0 голосов
/ 14 апреля 2020

Я хочу включить модуль A в модуль B. Модуль build.gradle модуля A содержит опции packackingOptions, которые необходимо выполнить. Эти PackackingOptions выполняются при сборке модуля A. Они не выполняются при сборке модуля B, который импортирует модуль A.

Как я могу убедиться, что PackackingOptions из build.gradle модуля A также выполняется при импорте модуль A в модуль B?

build.gradle модуля B выглядит следующим образом:

dependencies {
  implementation project(':A')
}

build.gradle модуля A выглядит следующим образом:

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

1 Ответ

0 голосов
/ 14 апреля 2020

Я настроил структуру проекта следующим образом:

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

Оба lib-sub-* содержат assets/foo.txt с различным содержанием.

build.gradle из buildscript-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.gradle из buildscript-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 независимо от порядка зависимостей (предположительно из-за упорядочения по алфавиту c).

Что-то еще в вашем buildscript должно быть неправильным, если это не работает. Если это не работает, можете ли вы предоставить более подробную информацию о build.gradle вашего модуля приложения и библиотечных модулей?

Возможно, вы переопределяете pickFirsts в своем приложении. В этом случае вместо pickFirsts = [somevalue] do pickFirst += 'foo' или pickFirst = 'foo'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...