2017-02-18 67 views
0

这是我的项目的build.gradle文件。我正在尝试动态创建maven url。当我提供注释的硬编码字符串时,它工作正常,但是当我给予未注释的动态字符串时,它会混乱起来。如何在gradle中创建动态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

你能提供什么,你当发生一点点的更多信息运行你的构建?你是什​​么意思“它搞砸了?” – LeslieV

回答

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的摇篮插件类路径的依赖关系(但不适用它): classpath 'com.android.tools.build:gradle:2.2.3'

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