如何在gradle中创建动态网址?

时间:2017-02-18 01:37:03

标签: android maven gradle android-gradle

这是我的项目的build.gradle文件。我正在尝试动态创建maven url。当我提供注释的硬编码字符串时,它工作正常但是当我给出未注释的动态字符串时,它会混乱。

foo.class也是一个字符串。我不知道这有什么问题。任何帮助将不胜感激。

apply plugin: 'java'

def foo = System.getenv().get("ANDROID_HOME")
//def foo = "/Users/someone/Library/Android/sdk"

repositories {
    jcenter()
    maven { url "$foo/extras/android/m2repository" }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:support-annotations:25.1.1'
}

sourceCompatibility = "1.7"
targetCompatibility = "1.7"

1 个答案:

答案 0 :(得分:0)

对于这种特殊情况(java模块中的Android支持库依赖项),您可以使用以下代码段:

def logger = new com.android.build.gradle.internal.LoggerWrapper(project.logger)
def sdkHandler = new com.android.build.gradle.internal.SdkHandler(project, logger)
for (File file : sdkHandler.sdkLoader.repositories) {
    repositories.maven {
        url = file.toURI()
    }
}

您必须将Android Gradle插件添加到类路径依赖项(但不要应用它): classpath 'com.android.tools.build:gradle:2.2.3'

参考:https://github.com/JakeWharton/butterknife/blob/master/butterknife-compiler/build.gradle