如何使用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存储库。
答案 0 :(得分:10)
如果您想进行$ {...}变量替换,则需要使用双引号(")而不是单引号(')。双引号表示GStrings,它可以做到这一点,但带单引号的字符串总是按字面解释。
所以:
repositories {
mavenCentral()
maven {
url "${HOME}/.m2/repository/"
}
}
确保将此块放在模块的构建文件中,而不是顶级构建文件的buildscript
块中;后者只决定在哪里找到Android插件,而不是特定于模块的依赖
由于错误引用字符串,它可能无法看到您的本地存储库。另外,关于插件隐式在SDK中添加Maven repo的另一个问题也是正确的。这将获得Android支持依赖项。
Gradle Single vs Double Quotes有更多信息和您可以关注的链接。
答案 1 :(得分:6)
我想对Scott Barta的回答发表评论,但我没有足够的声誉。
所以,我使用的最终解决方案是:
// in the top-level build.gradle:
buildscript {
...
}
allprojects {
repositories {
mavenCentral()
maven { url System.getenv('HOME') + "/.m2/repository/" }
}
}
答案 2 :(得分:4)
当你这样做的时候
apply plugin: 'android'
android插件添加了另一个存储库 - SDK下的存储库。它包含那些支持和扩展库。 com.test:artifact:1.0
可能来自您当地的Maven存储库。