Gradle:强制使用存储库作为依赖项

时间:2015-02-22 14:54:48

标签: android gradle dagger-2

我想知道是否有办法强制gradle将存储库用于一个依赖项。例如:

buildscript {
repositories {
    jcenter()
    mavenCentral()
    maven { url 'https://www.testfairy.com/maven' }
    maven { url 'https://maven.fabric.io/repo' }
    maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
}

dependencies {
    classpath 'com.android.tools.build:gradle:1.0.1'
    classpath "io.fabric.tools:gradle:1.+"
    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
wearApp project(':wear')
compile project(':shimmer')
compile('com.twitter.sdk.android:twitter:1.1.1@aar') {
    transitive = true;
}
compile('com.twitter.sdk.android:tweet-composer:0.7.2@aar') {
    transitive = true;
}
compile 'com.android.support:appcompat-v7:21.0.3'
// Dagger 2 dependencies
compile 'com.google.dagger:dagger:2.0-SNAPSHOT'
apt 'com.google.dagger:dagger-compiler:2.0-SNAPSHOT'
provided 'org.glassfish:javax.annotation:10.0-b28'

}

我希望从com.google.dagger签出https://oss.sonatype.org/content/repositories/snapshots,因为现在它会尝试从https://maven.fabric.io/repo检出来,这会导致以下错误:

Error:Could not GET 'https://maven.fabric.io/repo/com/google/dagger/
dagger-compiler/2.0-SNAPSHOT/maven-metadata.xml'. Received status code 401      from server: Unauthorized
<a href="toggle.offline.mode">Enable Gradle 'offline mode' and sync project</a>

谢谢。

2 个答案:

答案 0 :(得分:10)

昨晚我发生了同样的事情,我可以通过在gradle文件中添加以下行来解决。

compile 'com.google.dagger:dagger:2.1-SNAPSHOT'
apt 'com.google.dagger:dagger-compiler:2.1-SNAPSHOT'

repository中尚未提供版本2.0。

答案 1 :(得分:1)

不,还没有。排序很重要,所以你可以尝试将fabric.io repo放在最后。

当我从命令行本地尝试这个时,我看到匕首来自sonatype而没有改变任何东西。它也适用于命令行吗?