1. 程式人生 > >Gradle peer not authenticated以及gradle依賴查詢

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