Gradle编译时报错:gradle:peer not authenticated
处理方法:
Change your repository syntax to one of the following
repositories {
jcenter {
url "http://jcenter.bintray.com/"
}
}
repositories {
maven {
url "http://repo1.maven.org/maven2"
}
}
以下为原理
^前段时间有人问过以上配置之后为什么就能成功了,我一直没回,主要是我也不知道,只是从stackoverflow上扒下来的答案,这两天刚好看了groovy和gradle,现在可以解释下为什么了.建议大家看下Gradle User Guide,已有中文版<
1、先说依赖(大家都会)
在build.gradle文件中增加dependencies(格式为group:name:version)
如下所示
dependencies{
compile group: 'org.hibernate', name: 'hibernate-core',version: '3.6.7.Final'
}
其简写形式为group:name:version,如上面的可以简写为
'org.hibernate:hibernate-core:3.6.7.Final'
PS:但是他是怎么找到外部依赖的呢?好,下面说仓库,就解释了这个问题
2、仓库(以下内容摘抄自上面说的Gradle User Guide中文版)
gradle会在一个repository里找这些文件,仓库其实就是文件的集合,通过group,name,version整理分类。gradle能解析好几种不同的仓库形式,如Maven何lvy,同时可以理解各种进入仓库的方法, 比如使用本地文件系统或者 HTTP.
默认地, Gradle 不提前定义任何仓库. 在使用外部依赖之前, 你需要自己至少定义一个库. 比如使用下面例子中的 Maven central 仓库:
build.gradle
repositories {
mavenCentral()
}
或者使用一个远程的 Maven 仓库:
build.gradle
repositories {
maven {
url "http://repo.mycompany.com/maven2"
}
}
或者一个远程的 Ivy 仓库:
build.gradle
repositories {
ivy {
url "http://repo.mycompany.com/repo"
}
}
你也可以使用本地的文件系统里的库. Maven 和 Ivy 都支持下载的本地.+
build.gradle
repositories {
ivy {
// URL can refer to a local directory
url "../local-repo"
}
}
注意点:
一个项目可以有好几个库. Gradle 会根据依赖定义的顺序在各个库里寻找它们, 在第一个库里找到了就不会再在第二个库里找它了.