【问题标题】:Import repository from github in gradle在 gradle 中从 github 导入存储库
【发布时间】:2018-04-04 12:57:21
【问题描述】:

我正在构建一个 react native android 库,它依赖于:

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

原来android-maps-utils 没有按我想要的方式工作,所以我分叉了它,我想使用我的这个库版本而不是官方版本。虽然我找不到办法,但我在 gradle 中搜索了如何从 github 导入库,我发现 ajoberstar/gradle-git 但没有明确的说明如何做到这一点,我发现的所有示例都不适用于我(例如这个:Gradle: how to clone a git repo in a task?)。有没有更简单的方法来完成这样的事情?

编辑:

这是我的结构(简化):

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

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

settings.gradle ->

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

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

【问题讨论】:

    标签: android git github react-native android-gradle-plugin


    【解决方案1】:

    引用您通过在本地文件系统的某处构建分叉源而构建的 AAR。

    repositories {
       flatDir {
           dirs 'libs'
       }
    }
    

    然后将工件放入.../libs,并将其正常添加到您的依赖项中,当然版本与您刚刚构建的版本匹配。

    【讨论】:

    • 我尝试了你的解决方案,它不起作用或者我做错了什么(我更新了我的帖子)什么是奇怪的项目本身成功构建,但是在我的 react-native 项目中使用时它会崩溃(使用错误“找不到地图实用程序”)。
    • 这正是我的问题:github.com/facebook/react-native/issues/15854 你能推荐我任何其他方式来完成我想要的吗?
    • 我建议用一个普通的旧 Android 项目尝试一下,以了解问题是普遍问题还是与反应有关。
    【解决方案2】:

    我发现了问题所在!让我先弄清楚我想要做什么——我正在构建反应原生项目。它使用我的 react-native-maps 的分叉版本,它使用 android-maps-utils。我想 fork android-maps-utils 并使用我的 fork 版本。

    android-maps-utils 生成我需要在本地导入的 aar 文件。按照 Jeffrey Blattman 的建议,我在 react-native-maps 中添加了 libs 目录,并将名为 android-maps-utils.aar 的 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")
    }
    

    现在 react-native-maps 可以编译,但我的 react-native 项目不是由于:

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

    所以,我还需要包括这一行:

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

    在我的 react native app android 目录中。现在一切都编译好了!

    【讨论】:

      猜你喜欢
      • 2023-01-12
      • 1970-01-01
      • 2020-01-21
      • 1970-01-01
      • 1970-01-01
      • 2019-08-10
      • 2017-04-22
      • 2021-03-25
      • 2021-05-09
      相关资源
      最近更新 更多