Gradle 教程說明 使用者指南 第8章依賴管理基礎
阿新 • • 發佈:2019-02-01
8.1 什麼是依賴管理?
依賴管理非常粗略地分為兩部份:
· build 依賴自什麼東西
· build 釋出什麼東西
8.2 宣告你的依賴
讓我們來看看一些依賴宣告。這是一個基本構建指令碼:例,宣告依賴
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 依賴配置
一個配置是一個簡單的命名集的依賴。我們將把它們作為依賴的配置。
你可以用它們來定義專案的外部依賴。正如我們將在後面看到,他們還用定義專案的釋出。
Java外掛定義了一些標準配置。這些配置代表了Java外掛使用的類路徑。下面列出一些:
compile
編譯source code 需要的依賴。
runtime
在執行時所必需的產生classes的依賴關係。預設情況下,還包括編譯時的依賴。
testCompile
編譯該專案的測試原始碼 所需要的依賴。預設情況下,還包括編譯產生classes和編譯時的依賴。
testRuntime
執行測試需要的依賴。預設情況下,還包括編譯,執行和測試編譯依賴。
8.4 外部依賴
有多種型別的依賴,你可以定義。
外部依賴:依賴於當前構建工程之外的一些檔案,並且是儲存在倉庫中的,比如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在一個庫中尋找外部依賴。儲存倉庫僅是一個檔案集合,由group、name、version組成。
Gradle瞭解幾種不同的儲存庫格式,如Maven和Ivy,和訪問資源庫的幾種不同的方法,如使用本地檔案系統或HTTP。
預設情況下,Gradle沒有定義任何資源庫。您需要定義至少一個,然後才能使用外部依賴。
例,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"
}
}
一個專案可以有多個儲存庫。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/")
}
}
}