【问题标题】:Android studio, gradle never uses my local maven repoAndroid studio,gradle 从不使用我本地的 maven 存储库
【发布时间】:2014-07-29 12:53:04
【问题描述】:

如何让 gradle 1.10 使用我的本地 maven 存储库?当我运行我的 gradle 脚本时,它总是在 /Applications/Android Studio.app/sdk/extras/android/m2repository/ 而不是 ${HOME}/.m2/repository/ 中寻找工件

在我尝试过的 build.gradle 中:

repositories {
    mavenCentral()
    mavenLocal()
 }

并尝试过:

repositories {
    mavenCentral()
    maven {
        url '${HOME}/.m2/repository/'
    }
 }

然后我有一个位于本地 .m2 存储库中的依赖项:

dependencies {
    compile 'com.android.support:support-v4:20.0.+'
    compile 'com.android.support:appcompat-v7:20.0.+'
    compile 'com.google.android.gms:play-services:4.0.30'
    compile 'com.profferapp:proffer_dto_customer_android:1.0'
    compile 'com.test:artifact:1.0' // this is in my .m2 repository
}

这些配置都不指向我的本地 maven 存储库。

【问题讨论】:

标签: gradle android-studio


【解决方案1】:

如果要进行 ${...} 变量替换,则需要使用双引号 (") 而不是单引号 (')。双引号表示 GStrings,可以这样做,但带单引号的字符串是总是按字面解释。

所以:

repositories {
    mavenCentral()
    maven {
        url "${HOME}/.m2/repository/"
    }
 }

确保将此块放在模块的构建文件中,而不是顶级构建文件的buildscript 块;后者仅确定在哪里可以找到 Android 插件,而不是特定于模块的依赖项

由于引用错误的字符串,它可能看不到您的本地存储库。此外,关于插件在您的 SDK 中隐式添加 Maven 存储库的另一个问题也是正确的。这将获取 Android 支持依赖项。

Gradle Single vs Double Quotes 有更多信息和一个您可以关注的链接。

【讨论】:

  • 您能否说明如何/在何处定义“HOME”变量?谢谢
  • 或者你可以使用:repositories { mavenLocal() jcenter() }
  • 我很想知道 GString 是什么:/
【解决方案2】:

我想评论 Scott Barta 的回答,但我没有足够的声誉。

  1. $HOME 对我不起作用(在 CLI 中,而不是 Android Studio 中),System.getenv('HOME') 可以
  2. 不必将存储库块放入每个模块的 build.gradle 文件中,只需将块放入顶层 build.gradle 中的“allprojects”块中(我学会了here

所以,我使用的最终解决方案是:

// in the top-level build.gradle:
buildscript {
    ...
}

allprojects {
    repositories {
        mavenCentral()
        maven { url System.getenv('HOME') + "/.m2/repository/" }
    }
}

【讨论】:

    【解决方案3】:

    当你这样做时 apply plugin: 'android'

    android 插件添加了另一个存储库 - 您的 SDK 下的那个。它包含那些支持和扩展库。 com.test:artifact:1.0 可能取自您的本地 Maven 存储库。

    【讨论】:

    • 工件不是从我的本地 Maven 存储库中获取的,我已经检查了日志。
    • 顺便说一句:你可以让它更简单,只需使用mavenLocal()(参见gradle.org/docs/current/userguide/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-11
    • 1970-01-01
    • 2018-05-23
    • 2021-10-14
    • 1970-01-01
    • 2019-12-27
    • 2015-11-13
    相关资源
    最近更新 更多