2015-02-22 6 views
9

Ich würde gerne wissen, ob es eine Möglichkeit gibt, zu zwingen, ein Repository für eine Abhängigkeit zu verwenden. Zum Beispiel mit:Gradle: erzwinge die Verwendung eines Repositorys für eine Abhängigkeit

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:[email protected]') { 
    transitive = true; 
} 
compile('com.twitter.sdk.android:tweet-composer:[email protected]') { 
    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' 

} 

Ich mag com.google.dagger von https://oss.sonatype.org/content/repositories/snapshots ausgecheckt werden, weil jetzt versucht er es von https://maven.fabric.io/repo zu überprüfen, die in den folgenden Fehlern führen:

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> 

Danke.

Antwort

1

Nein, noch nicht. Die Reihenfolge ist wichtig, also könntest du versuchen, den fabric.io repo zuletzt zu setzen.

Wenn ich dies lokal über die Befehlszeile versuche, sehe ich, dass Dolch vom Sonatyp kommt, ohne etwas zu verändern. Funktioniert es auch für Sie von der Kommandozeile?

+0

Ich fand heraus, warum es nicht funktioniert hat. Ich hatte 'Repositories {maven {url "https://oss.sonatype.org/content/repositories/snapshots"}} unter meinem 'Apply Plugin' in meiner GRADLE-Datei. Ich fügte 'maven {url" https://oss.sonatype.org/content/repositories/snapshots "}' hinzu und es funktionierte. Aber ich verstehe immer noch nicht, warum wir nicht angeben können, welches Repo für bestimmte Abhängigkeiten verwendet werden soll. –

10

Das gleiche ist mir letzte Nacht passiert, ich könnte das lösen, indem ich die folgenden Zeilen in die Datei gradle einfüge.

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

Version 2.0 ist nicht bereits in der repository.