Gradle支持下面三種不同類型的倉(cāng)庫(kù):
http://wiki.jikexueyuan.com/project/gradleIn-action/images/5-8.png" alt="" />
下圖是配置不同倉(cāng)庫(kù)對(duì)應(yīng)的Gradle API:
http://wiki.jikexueyuan.com/project/gradleIn-action/images/5-9.png" alt="" />
下面以Maven倉(cāng)庫(kù)來(lái)介紹,Maven倉(cāng)庫(kù)是Java項(xiàng)目中使用最為廣泛的一個(gè)倉(cāng)庫(kù),庫(kù)文件一般是以JAR文件的形式存在,用XML(POM文件)來(lái)來(lái)描述庫(kù)的元數(shù)據(jù)和它的傳遞依賴。所有的庫(kù)文件都存儲(chǔ)在倉(cāng)庫(kù)的指定位置,當(dāng)你在構(gòu)建腳本中聲明了依賴時(shí),這些屬性用來(lái)找到庫(kù)文件在倉(cāng)庫(kù)中的準(zhǔn)確位置。group屬性標(biāo)識(shí)了Maven倉(cāng)庫(kù)中的一個(gè)子目錄,下圖展示了Cargo依賴屬性是怎么對(duì)應(yīng)到倉(cāng)庫(kù)中的文件的:
http://wiki.jikexueyuan.com/project/gradleIn-action/images/5-10.png" alt="" />
RepositoryHandler接口提供了兩個(gè)方法來(lái)定義Maven倉(cāng)庫(kù),mavenCentral方法添加一個(gè)指向倉(cāng)庫(kù)列表的引用,mavenLocal方法引用你文件系統(tǒng)中的本地Maven倉(cāng)庫(kù)。
添加Maven倉(cāng)庫(kù)
要使用Maven倉(cāng)庫(kù)你只需要調(diào)用mavenCentral方法,如下所示:
repositories {
mavenCentral()
}
添加本地倉(cāng)庫(kù)
本地倉(cāng)庫(kù)默認(rèn)在
repositories {
mavenLocal()
}
添加自定義Maven倉(cāng)庫(kù)
如果指定的依賴不存在與Maven倉(cāng)庫(kù)或者你想通過(guò)建立自己的企業(yè)倉(cāng)庫(kù)來(lái)確保可靠性,你可以使用自定義的倉(cāng)庫(kù)。倉(cāng)庫(kù)管理器允許你使用Maven布局來(lái)配置一個(gè)倉(cāng)庫(kù),這意味著你要遵守artifact的存儲(chǔ)模式。你也可以添加驗(yàn)證憑證來(lái)提供訪問(wèn)權(quán)限,Gradle的API提供兩種方法配置自定義的倉(cāng)庫(kù):maven()和mavenRepo()。下面這段代碼添加了一個(gè)自定義的倉(cāng)庫(kù),如果Maven倉(cāng)庫(kù)中不存在相應(yīng)的庫(kù)會(huì)從自定義倉(cāng)庫(kù)中查找:
repositories {
mavenCentral()
maven {
name 'Custom Maven Repository',
url 'http://repository.forge.cloudbees.com/release/')
}
}