2016-11-17 7 views
0

Чтобы упростить вещи, я собираюсь назвать библиотеки, которые я использую library_a.aar и library_b.aar.Вложенные зависимости aar не работают

Вот сценарий, с которым я столкнулся. library_a создается и перемещается в maven_repository и здесь нет проблем. library_b зависит от library_a и добавляют к library_b следующим образом:

repositories { 
    maven { 
     credentials { 
      username USERNAME 
      password PASSWORD 
     } 
     url "https://api.bitbucket.org/1.0/repositories/COMPANY/maven_repository/raw/releases" 
    } 
} 

dependencies { 
    ... 
    compile 'package:library_a:1.0' 
    ... 
} 

library_b построен без ошибок и загружены в maven_repository.

Теперь мое приложение зависит от библиотеки_b, которую мне нужно добавить, предоставив (как указано выше) репозиторий вместе с учетными данными.

Первый вопрос, который я столкнулся в том, что для того, чтобы компилировать library_b в моем проекте он должен быть составлен следующим образом:

dependencies { 
    ... 
    compile 'package:library_b:[email protected]' 
    ... 
} 

Я должен добавить @aar иначе Gradle вонн» я узнал это, но мне не нужно было это делать с помощью библиотеки_a.

Вторая проблема заключается в том, что при создании приложения я получаю предупреждения о том, что он не может найти ссылки на классы, доступные в library_a. Что мне здесь не хватает? Я попытался добавить transitive = true в library_a

dependencies { 
     ... 
     compile ('package:library_a:1.0') { 
      transitive = true; 
     } 
     ... 
} 

но абсолютно ничего не работает. Я проверил файл pom и включил правильные зависимости. Может ли быть, что то, что я делаю, не поддерживается градиентом, и мне нужно скомпилировать библиотеки и библиотеки_b в моем приложении?

+0

Как вы загрузите ААР в Maven репо? Выполняя задачу градиента или вручную? – larsgrefer

+0

@larsgrefer Я использовал https://github.com/JeroenMols/GitAsMaven для загрузки –

ответ

0

Похоже, что ваш maven repo содержит только файлы aar, но нет или нет pom файлов.

Вы используете следующий плагин gradle и задание градации uploadArchives, чтобы загрузить aar s в ваш репозиторий maven? https://github.com/dcendents/android-maven-gradle-plugin

попробовать этот Gradle фрагмент кода для aar с:

buildscript { 
    repositories { 
     mavenCentral() 
    } 

    dependencies { 
     classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5' 
    } 
} 

apply plugin: 'com.android.library' 
apply plugin: 'com.github.dcendents.android-maven' 

android { ... } 

dependencies { ... } 

uploadArchives { 
    repositories { 
     mavenDeployer { 
      repository(url: "https://api.bitbucket.org/1.0/repositories/COMPANY/maven_repository/raw/releases") { 
       authentication(userName: USERNAME, password: PASSWORD) 
      } 
     } 
    } 
} 

Затем используйте uploadArchives Gradle задачу

+0

файл pom с правильными зависимостями. Я использовал пример GitAsMaven github (https://github.com/JeroenMols/GitAsMaven). –