依賴管理(在 build.gradle 中):
1、定義依賴倉庫(repositories):
Gradle 要求至少定義一個依賴倉庫,依賴倉庫可以是文件系統,也可以是中心服務器。最常用的是 jcenter 和 mavenCentral。
2、申明依賴(dependencies):
和 Maven 類似,依賴的坐標直接為:group、name、version。此外,引入不同的插件會引入不同的依賴配置類別。
依賴坐標可以簡寫(用 : 分隔):
'org.apache.commons:commons-lang3:3.8.1'
3、項目的依賴類型:
- 外部模塊依賴:剛才的外部倉庫
- 項目依賴:一個項目依賴另一個項目。如:compile project(':projectB')。
- 文件依賴:依賴本地文件
4、依賴的下載:
當執行 build 命令時,gradle 就會去配置的依賴倉庫中下載對應的 Jar,並應用到項目中。
5、依賴配置類型:
在 dependency 前面可指明其依賴類型,可選(和 Maven 的 scope 標簽類似)。Java 插件提供了 6 種現成的類型:
- compile:編譯過程中必須依賴的類庫
- runtime:運行時必須(編譯時不需要)
- testCompile:編譯測試時需要
- testRuntime:運行測試時需要
- archives:如果項目在編譯過程中,有 jar 文件生成,則包含
6、將依賴打包進 jar:如果需要讓編譯出來的 jar 直接可以運行,可以考慮將依賴庫全部,或者部分打包進 jar。
在 jar 配置項中,配置包含內容的來源即可:
// HelloWorld.java package com.rainsia.hello; import org.apache.commons.lang3.StringUtils; public class HelloWorld { public static void main(String[] args) { System.out.println(StringUtils.capitalize("hello world!")); } } // build.gradle 中 dependencies { compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.1' // archives "org.apache.commons:commons-lang3:3.1" } jar { from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } manifest { attributes 'Main-Class': 'com.rainsia.hello.HelloWorld' } }