Impor repositori dari github secara bertahap

Saya sedang membangun perpustakaan Android asli reaksi yang bergantung pada:

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

Ternyata android-maps-utils tidak berfungsi seperti yang saya inginkan, jadi Saya mem-forknya dan ingin menggunakan versi perpustakaan ini milik saya, bukan yang resmi. Saya tidak dapat menemukan cara untuk melakukannya, saya mencari cara mengimpor perpustakaan dari github di dalam gradle dan saya menemukan ajoberstar/gradle-git tetapi tidak ada instruksi yang jelas tentang cara melakukannya dan semua contoh yang saya temukan tidak berfungsi untuk saya (misalnya yang ini: Gradle: bagaimana cara mengkloning repo git dalam suatu tugas?). Apakah ada cara yang lebih mudah untuk mencapai hal seperti itu?

Sunting:

Ini adalah struktur saya (disederhanakan):

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

root build.gradle -> repositories { flatDir { dirs 'aars' } }

pengaturan.gradle ->

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 sumber


Jawaban (2)


Referensikan AAR yang Anda buat dari pembuatan sumber bercabang di suatu tempat di sistem file lokal Anda.

repositories {
   flatDir {
       dirs 'libs'
   }
}

lalu letakkan artefak di .../libs, dan tambahkan secara normal ke dependensi Anda, tentu saja cocokkan versinya dengan yang baru saja Anda buat.

person Jeffrey Blattman    schedule 23.10.2017
comment
Saya mencoba solusi Anda, tidak berhasil atau saya melakukan sesuatu yang salah (Saya memperbarui posting saya) Proyek aneh itu sendiri berhasil dibangun, tetapi macet ketika digunakan dalam proyek asli reaksi saya (dengan kesalahan 'Tidak dapat menemukan peta-util '). - person bumbur; 25.10.2017
comment
Inilah masalah saya: github.com/facebook/react-native/issues/15854 Bisakah Anda merekomendasikan saya cara lain untuk mencapai apa yang saya inginkan? - person bumbur; 25.10.2017
comment
Saya sarankan mencobanya dengan proyek Android lama untuk memahami apakah masalahnya bersifat umum atau terkait dengan reaksi. - person Jeffrey Blattman; 26.10.2017

Saya sudah tahu apa masalahnya! Izinkan saya menjelaskan terlebih dahulu apa yang ingin saya lakukan - saya sedang membangun proyek reaksi asli. Ini menggunakan versi react-native-maps saya yang bercabang, yang menggunakan Android-maps-utils. Saya ingin melakukan fork Android-maps-utils dan menggunakan versi fork saya.

Android-maps-utils menghasilkan file aar yang perlu saya impor secara lokal. Mengikuti saran Jeffrey Blattman, saya menambahkan direktori libs di dalam react-native-maps dan meletakkan file aar bernama Android-maps-utils.aar di sana. Saya juga menambahkan ini di dalam react-native-maps build.gradle:

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

dan ini di dalam react-native-maps/Android/build.gradle:

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

Sekarang react-native-maps dikompilasi tetapi proyek react-native saya tidak dapat dikompilasi karena:

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

Jadi, saya juga perlu memasukkan baris ini:

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

di dalam direktori Android aplikasi asli reaksi saya. Sekarang semuanya terkompilasi!

person bumbur    schedule 26.10.2017