我有一个只有两个依赖项的项目,相对标准的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
依赖。
我不是一个傻瓜大师,但我read multiple places jcenter is a so called superset of mavenCentral this answer。具体来说是this one
JCenter本身是Maven Central上的薄薄饰面。 代理(或多或少成功)并添加其他组件。两者都托管在CDN网络上且性能极高。 Maven Central本身是所有Eclipse,Apache和大多数其他开源项目的目标,没有它,JCenter将基本上是空的。
你永远不需要两者。 JCenter是Maven Central的超集,它应该足以满足所有依赖项。
我和Bintray背后的公司JFrog和[神器],请参阅我的个人资料以获取详细信息和链接。
让我相信,就提供软件包而言,它们基本相同,只有jcenter在某种程度上更好。特别是后一个答案的海报似乎知道他在说什么。
然而,我不能用jcenter拉入离子依赖。我总是得到这个错误
http://search.maven.org/#artifactdetails%7Ccom.koushikdutta.ion%7Cion%7C2.1.6%7Cjar
为了让它工作,我还需要添加mavenCentral。因此,上面的gradle片段不起作用,但如果我将allprojects
更改为此
allprojects {
repositories {
jcenter()
mavenCentral()
}
}
它神奇地开始工作。
这怎么可能?我已经确认两者都提供了包裹:
Gradle设置
{{3}}
我尝试过本地包装器但没有成功。
Android Studio 1.3.2
Gradle 1.3.0