我有一个只有两个依赖项的项目,相对标准的appcompat-v7
和ion
. 所以我的 gradle 文件非常简单:
项目
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
}
}
allprojects {
repositories {
jcenter()
}
}
应用程序
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.0"
defaultConfig {
applicationId "zz.yy.xx"
minSdkVersion 18
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.koushikdutta.ion:ion:2.1.6'
}
事实上,我认为我自己添加的唯一内容就是ion
依赖项。
我不是 gradle 大师,但我在多个地方读到jcenter是mavenCentral 的所谓超集。具体这个答案
JCenter 本身是 Maven Central 之上的薄薄的一层。它代理它(或多或少成功)并添加其他组件。两者都托管在 CDN 网络上并且具有高性能。Maven Central 本身是所有 Eclipse、Apache 和大多数其他开源项目的目标,如果没有它,JCenter 将大部分是空的。
而这个
你永远不需要两者。JCenter 是 Maven Central 的超集,它应该足以满足所有依赖项。
我在 Bintray 和 [artifactory] 背后的公司 JFrog 工作,有关详细信息和链接,请参阅我的个人资料。
让我相信它们在提供软件包方面基本相同,只有 jcenter 在某些方面更好。尤其是后者答案的发布者似乎知道他在说什么。
但是,我无法使用 jcenter 引入离子依赖性。我总是收到这个错误
为了让它工作,我还需要添加 mavenCentral。所以上面的gradle片段不起作用,但如果我改成allprojects
这个
allprojects {
repositories {
jcenter()
mavenCentral()
}
}
它神奇地开始工作。
这怎么可能?我已经验证两者都提供包:
- http://search.maven.org/#artifactdetails%7Ccom.koushikdutta.ion%7Cion%7C2.1.6%7Cjar
- https://bintray.com/bintray/jcenter/com.koushikdutta.ion%3Aion/2.1.6/view
摇篮设置
我尝试了本地包装器但没有成功。
安卓工作室 1.3.2
Gradle 1.3.0