2015-02-22 2 views
9

Я хотел бы знать, есть ли способ заставить gradle использовать репозиторий для одной зависимости. Например, с: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:[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' 

} 

Я хочу 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> 

Спасибо.

ответ

1

Нет, еще нет. Заказ очень важен, поэтому вы можете попробовать перетащить fabric.io repo last.

Когда я пытаюсь выполнить это локально из командной строки, я вижу, что кинжал исходит из сонатипа, ничего не меняя. Работает ли она из командной строки и для вас?

+0

Я понял, почему это не сработало. У меня были 'repositories {maven {url" https://oss.sonatype.org/content/repositories/snapshots "}}' под моим 'apply plugin' в моем файле gradle. Я добавил 'maven {url" https://oss.sonatype.org/content/repositories/snapshots "}' под ним, и он сработал. Но все же я не понимаю, почему мы не можем указать, какое репо использовать для определенных зависимостей. –

10

То же самое случилось со мной прошлой ночью, я мог бы решить, добавив следующие строки в файл градимента.

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

версии 2.0 еще не доступен в repository.

Смежные вопросы