Транзитивные зависимости для локальной библиотеки aar
мы делаем некоторую библиотеку, в основном для нашего API, чтобы облегчить жизнь нашим внешним разработчикам.
поэтому мы создали новый проект библиотеки и поставили Retrofit и некоторые другие библиотеки в качестве зависимостей.
dependencies {
compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.google.code.gson:gson:2.6.2'
compile 'com.squareup.retrofit2:retrofit:2.0.1'
compile 'com.squareup.retrofit2:converter-gson:2.0.1'
compile 'com.squareup.okhttp3:okhttp:3.2.0'
}
теперь, когда мы строим его, он производит .
но теперь, когда мы ставим до libs
каталог и установить его как зависимость, мы все равно должны поставить ту же зависимость в build.gradle
файл, который отстой. Он должен его забрали из библиотеки, верно?
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
compile(name: 'ourlibrary', ext: 'aar') {
transitive = true;
}
}
как сделать transitive = true
работы?
1 ответов
на aarне содержит вложенного (или транзитивное) зависимости и не имеет файла pom, который описывает зависимости, используемые библиотекой.
Это означает, что, если вы импортируете файл AAR с помощью flatDir
repo вы также должны указать зависимости в своем проекте.
в вашем случае при добавлении transitive=true
не решает проблему по причине, описанной выше.
вы должны использовать хранилище maven (вы должны опубликовать библиотеку в частном или публичном репозитории maven), у вас не будет той же проблемы.
В этом случае gradle загружает зависимости с помощью файла pom, который будет содержать список зависимостей.