这是我的项目的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"
答案 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