Gradle peer not authenticated以及gradle依賴查詢
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會在一個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 會根據依賴定義的順序在各個庫裡尋找它們, 在第一個庫裡找到了就不會再在第二個庫裡找它了.