Импорт репозитория из github в gradle

Я создаю нативную библиотеку для Android, которая зависит от:

dependencies {
    compile 'com.google.maps.android:android-maps-utils:0.5'
}

Оказалось, что android-maps-utils работает не так, как я хочу. Я разветвил ее и хотел использовать свою версию этой библиотеки вместо официальной. Однако я не могу найти способ сделать это, я искал, как импортировать библиотеку из github внутри gradle, и нашел ajoberstar/gradle-git, но нет четкой инструкции, как это сделать, и все примеры, которые я нашел, у меня не работают (например, этот: Gradle: как клонировать репозиторий git в задаче?). Есть ли более простой способ сделать что-то подобное?

РЕДАКТИРОВАТЬ:

Это моя структура (упрощенная):

root:
| build.gradle
| settings.gradle
| aars
 | map-util.aar
| libs
 | android
  | build.gradle

корень build.gradle -> repositories { flatDir { dirs 'aars' } }

настройки. град ->

include ":react-native-maps-lib"
project(":react-native-maps-lib").projectDir = file("./lib/android")

android/build.grandle -> compile(name: "map-util", ext:"aar")


person bumbur    schedule 23.10.2017    source источник


Ответы (2)


Ссылка на AAR, который вы создаете из разветвленного источника где-то в вашей локальной файловой системе.

repositories {
   flatDir {
       dirs 'libs'
   }
}

затем поместите артефакт в .../libs и добавьте его в свои зависимости, конечно же, сопоставив версию с тем, что вы только что создали.

person Jeffrey Blattman    schedule 23.10.2017
comment
Я попробовал ваше решение, оно не работает или я сделал что-то не так (я обновил свой пост). Что странно, сам проект успешно строится, но он падает при использовании в моем реактивном проекте (с ошибкой «Не удалось найти карту-util '). - person bumbur; 25.10.2017
comment
Это как раз моя проблема: github.com/facebook/react-native/issues/15854 Не могли бы вы порекомендовать мне другой способ добиться того, чего я хочу? - person bumbur; 25.10.2017
comment
Я бы предложил попробовать это с простым старым проектом Android, чтобы понять, является ли проблема общей или связана с реакцией. - person Jeffrey Blattman; 26.10.2017

Я понял в чем проблема! Позвольте мне сначала прояснить, что я хотел сделать - я строю реактивный нативный проект. Он использует мою разветвленную версию react-native-maps, которая использует android-maps-utils. Я хотел разветвить android-maps-utils и использовать свою разветвленную версию.

android-maps-utils создает файл aar, который мне нужно было импортировать локально. Следуя предложению Джеффри Блаттмана, я добавил каталог libs внутрь react-native-maps и поместил туда файл aar с именем android-maps-utils.aar. Я также добавил это внутри react-native-maps build.gradle:

allprojects {
  repositories {
    ...
    flatDir {
      dirs "$rootDir/libs"
    }
  }
}

и это внутри react-native-maps/android/build.gradle:

dependencies {
  ...
  compile(name: "android-maps-utils", ext:"aar")
}

Теперь реактивные карты компилируются, но мой реактивный проект не компилируется из-за:

A problem occurred evaluating project ':react-native-maps'.

Итак, мне также нужно было включить эту строку:

compile(name: "android-maps-utils", ext:"aar")

внутри моего собственного каталога приложения Android для реагирования. Теперь все компилируется!

person bumbur    schedule 26.10.2017