Gradle - 依賴管理
Gradle構建指令碼定義了一個構建專案的流程;每個專案都包含一些依賴項和一些釋出物。依賴項是指支援構建專案的事物,例如來自其他專案的所需JAR檔案和類路徑中的外部JAR檔案,例如JDBC JAR或Eh-cache JAR。
釋出物是指專案的成果,例如測試類檔案、構建檔案和war檔案。
並非所有專案都是獨立的。它們需要由其他專案構建的檔案來編譯和測試原始檔。例如,為了在專案中使用Hibernate,您需要在類路徑中包含一些Hibernate JAR檔案。Gradle使用一些特殊的指令碼定義需要下載的依賴項。
Gradle處理構建和釋出成果。釋出基於您定義的任務。它可能希望將檔案複製到本地目錄,或將它們上傳到遠端Maven或Ivy儲存庫,或者您可能在同一多專案構建中使用來自另一個專案的檔案。我們可以將釋出過程稱為釋出任務。
宣告您的依賴項
依賴配置定義一組依賴項。您可以使用此功能宣告要從Web下載的外部依賴項。這定義了以下不同的標準。
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.+'
}
依賴配置
依賴配置定義一組依賴項。您可以使用此功能宣告要從Web下載的外部依賴項。這定義了以下不同的標準配置。
編譯 (Compile) − 專案編譯生產原始碼所需的依賴項。
執行時 (Runtime) − 生產類在執行時所需的依賴項。預設情況下,它還包括編譯時依賴項。
測試編譯 (Test Compile) − 專案編譯測試原始碼所需的依賴項。預設情況下,它包括已編譯的生產類和編譯時依賴項。
測試執行時 (Test Runtime) − 執行測試所需的依賴項。預設情況下,它包括執行時和測試編譯依賴項。
外部依賴項
外部依賴項是一種依賴項型別。這是對當前構建外部構建並存儲在某種型別的儲存庫(例如Maven中央儲存庫、公司Maven或Ivy儲存庫或本地檔案系統中的目錄)中的一些檔案的依賴項。
以下程式碼片段用於定義外部依賴項。在build.gradle檔案中使用此程式碼。
dependencies {
compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
}
外部依賴項宣告外部依賴項,快捷形式類似於“group:name:version”。
儲存庫
新增外部依賴項時,Gradle會在儲存庫中查詢它們。按組、名稱和版本組織的檔案集合稱為儲存庫。預設情況下,Gradle不會定義任何儲存庫。我們必須顯式定義至少一個儲存庫。以下程式碼片段定義瞭如何定義Maven儲存庫。在build.gradle檔案中使用此程式碼。
在build.gradle檔案中使用以下程式碼:
repositories {
mavenCentral()
}
以下程式碼用於定義遠端Maven。在build.gradle檔案中使用此程式碼。
repositories {
maven {
url "http://repo.mycompany.com/maven2"
}
}
釋出構件
依賴配置也用於釋出檔案。這些已釋出的檔案稱為構件。通常,我們使用外掛來定義構件。但是,您確實需要告訴Gradle在哪裡釋出構件。
您可以透過將儲存庫附加到uploadArchives任務來實現此目的。檢視以下發布Maven儲存庫的語法。執行時,Gradle將根據專案要求生成並上傳Pom.xml。
在build.gradle檔案中使用此程式碼。
apply plugin: 'maven'
uploadArchives {
repositories {
mavenDeployer {
repository(url: "file:///tmp/myRepo/")
}
}
}