Gradle: 强制使用依赖项的存储库
Gradle: force use of a repository for a dependency
我想知道是否有办法强制 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'
}
我希望从 https://oss.sonatype.org/content/repositories/snapshots
中检出 com.google.dagger
,因为现在它试图从 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>
谢谢。
不,还没有。顺序很重要,因此您可以尝试将 fabric.io 存储库放在最后。
当我从命令行在本地尝试此操作时,我看到 dagger 来自 sonatype 而没有任何更改。它也适用于您的命令行吗?
我昨晚也发生了同样的事情,我可以通过在 gradle 文件中添加以下行来解决。
compile 'com.google.dagger:dagger:2.1-SNAPSHOT'
apt 'com.google.dagger:dagger-compiler:2.1-SNAPSHOT'
版本 2.0 在 repository 中尚不可用。
我想知道是否有办法强制 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'
}
我希望从 https://oss.sonatype.org/content/repositories/snapshots
中检出 com.google.dagger
,因为现在它试图从 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>
谢谢。
不,还没有。顺序很重要,因此您可以尝试将 fabric.io 存储库放在最后。
当我从命令行在本地尝试此操作时,我看到 dagger 来自 sonatype 而没有任何更改。它也适用于您的命令行吗?
我昨晚也发生了同样的事情,我可以通过在 gradle 文件中添加以下行来解决。
compile 'com.google.dagger:dagger:2.1-SNAPSHOT'
apt 'com.google.dagger:dagger-compiler:2.1-SNAPSHOT'
版本 2.0 在 repository 中尚不可用。