Gradle 教程說明 用戶指南 第8章依賴管理基礎
來源:程序員人生 發布時間:2014-12-20 08:36:11 閱讀次數:3703次
8.1 甚么是依賴管理?
依賴管理非常粗略地分為兩部分:
? build 依賴自甚么東西
? build 發布甚么東西
8.2 聲明你的依賴
讓我們來看看1些依賴聲明。這是1個基本構建腳本:
例,聲明依賴
build.gradle:
apply plugin: 'java'
repositories {
mavenCentral()
}
dependencies {
compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
testCompile group: 'junit', name: 'junit', version: '4.+'
}
這個構建腳本說,有關該項目的幾件事情。首先,它指出Hibernate的核心3.6.7.Final需要參與編譯項目。
這意味著,Hibernate的核心,需要在運行時依賴。
構建腳本還規定,編譯該項目的測試需要junit> = 4.0。
它還告知Gradle在Maven的存儲庫查找所需的任何依賴關系。
8.3 依賴配置
1個配置是1個簡單的命名集的依賴。我們將把它們作為依賴的配置。
你可以用它們來定義項目的外部依賴。正如我們將在后面看到,他們還用定義項目的發布。
Java插件定義了1些標準配置。這些配置代表了Java插件使用的類路徑。下面列出1些:
compile
編譯source code 需要的依賴。
runtime
在運行時所必須的產生classes的依賴關系。默許情況下,還包括編譯時的依賴。
testCompile
編譯該項目的測試源碼 所需要的依賴。默許情況下,還包括編譯產生classes和編譯時的依賴。
testRuntime
運行測試需要的依賴。默許情況下,還包括編譯,運行和測試編譯依賴。
8.4 外部依賴
有多種類型的依賴,你可以定義。
外部依賴:依賴于當前構建工程以外的1些文件,并且是存儲在倉庫中的,比如Maven的中央,或企業Maven或Ivy庫,或在本地文件系統中的目錄。
例,外部依賴的定義
build.gradle:
dependencies {
compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
}
外部依賴性,使用標識組,名稱和版本屬性。依賴哪一種倉庫,組和版本是可選的。
定義外部依賴的快捷情勢看起來像“ 組:名稱:版本 ”。
例,外部依賴的快捷定義
build.gradle:
dependencies {
compile 'org.hibernate:hibernate-core:3.6.7.Final'
}
8.5 倉庫
Gradle在1個庫中尋覓外部依賴。存儲倉庫僅是1個文件集合,由group、name、version組成。
Gradle了解幾種不同的貯存庫格式,如Maven和Ivy,和訪問資源庫的幾種不同的方法,如使用本地文件系統或HTTP。
默許情況下,Gradle沒有定義任何資源庫。您需要定義最少1個,然后才能使用外部依賴。
例,Maven的中央存儲庫的使用
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庫。
例如8.7。本地Ivy目錄的使用
build.gradle
repositories {
ivy {
// URL can refer to a local directory
url "../local-repo"
}
}
1個項目可以有多個存儲庫。Gradle將按指定的順序在每一個庫中尋覓依賴,最早在某個庫中找到就停止。
8.6 發布
依賴的配置也被用來發布文件。
通常不需要特別告知Gradle甚么需要發布。但是,你需要告知Gradle在哪里發布。您可以通過連接庫的uploadArchives任務。
這里是發布到遠程Ivy庫的例子:
例,發布到Ivy庫
build.gradle:
uploadArchives {
repositories {
ivy {
credentials {
username "username"
password "pw"
}
url "http://repo.mycompany.com"
}
}
}
現在,當你運行gradle uploadArchives,Gradle將建立并上傳你的Jar文件。Gradle也會生成并上傳ivy.xml。
您也能夠發布到Maven倉庫。語法稍有不同。請注意,您還需要使用Maven插件,以發布到Maven倉庫。
這時候,Gradle將生成并上傳pom.xml。
例,發布到Maven倉庫
build.gradle:
apply plugin: 'maven'
uploadArchives {
repositories {
mavenDeployer {
repository(url: "file://localhost/tmp/myRepo/")
}
}
}
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈