Gradle 是怎樣找到那些外部依賴的文件的呢? Gradle 會(huì)在一個(gè)repository(倉(cāng)庫(kù))里找這些文件. 倉(cāng)庫(kù)其實(shí)就是文件的集合, 通過 group
, name
和 version
整理分類. Gradle 能解析好幾種不同的倉(cāng)庫(kù)形式, 比如 Maven 和 Ivy, 同時(shí)可以理解各種進(jìn)入倉(cāng)庫(kù)的方法, 比如使用本地文件系統(tǒng)或者 HTTP.
默認(rèn)地, Gradle 不提前定義任何倉(cāng)庫(kù). 在使用外部依賴之前, 你需要自己至少定義一個(gè)庫(kù). 比如使用下面例子中的 Maven central 倉(cāng)庫(kù):
例子 8.4. Maven central 倉(cāng)庫(kù)
build.gradle
repositories {
mavenCentral()
}
或者使用一個(gè)遠(yuǎn)程的 Maven 倉(cāng)庫(kù):
例子 8.5. 使用遠(yuǎn)程的 Maven 倉(cāng)庫(kù)
build.gradle
repositories {
maven {
url "http://repo.mycompany.com/maven2"
}
}
或者一個(gè)遠(yuǎn)程的 Ivy 倉(cāng)庫(kù):
例子 8.6. 使用遠(yuǎn)程的 Ivy 倉(cāng)庫(kù)
build.gradle
repositories {
ivy {
url "http://repo.mycompany.com/repo"
}
}
你也可以使用本地的文件系統(tǒng)里的庫(kù). Maven 和 Ivy 都支持下載的本地.
例子 8.7. 使用本地的 Ivy 目錄
build.gradle
repositories {
ivy {
// URL can refer to a local directory
url "../local-repo"
}
}
一個(gè)項(xiàng)目可以有好幾個(gè)庫(kù). Gradle 會(huì)根據(jù)依賴定義的順序在各個(gè)庫(kù)里尋找它們, 在第一個(gè)庫(kù)里找到了就不會(huì)再在第二個(gè)庫(kù)里找它了.
可以在Section 50.6 章, “倉(cāng)庫(kù)”里找到更詳細(xì)的信息.