每一個項目都有一個ConfigurationContainer類的容器來管理相應的配置,并且每一個Gradle都是有依賴處理器的,由DependencyHandler接口來實作
如下圖:
1.外部子產品依賴
兩種方式聲明依賴:
字元串的形式如: compileOnly ‘org.projectlombok:lombok:1.18.2’
key-value形式 :testCompile group: ‘junit’, name: ‘junit’, version: ‘4.12’
其他的使用:如下
dependencies {
providedCompile 'javax.servelt:servlet-api:2.5'
runtime ‘javax.servlet:jstl:1.1.2'
compileOnly 'org.projectlombok:lombok:1.18.2'
testCompile group: 'junit', name: 'junit', version: '4.12'
//排除依賴例子
compile ("org.springframework.boot:spring-boot-starter-aop:${springBootVersion}") {
exclude group: 'org.slf4j', module: 'slf4j-api' //排除依賴
exclude group: 'ch.qos.logback', module: 'logback-classic' //排除依賴
}
//關閉傳遞性依賴例子
compile("org.springframework:spring-web:4.3.4.RELEASE") {
transitive = false //關閉傳遞性依賴
}
}
2.檔案依賴
使用文法糖from to 實作
3.解決依賴問題
- 最近版本政策(預設)
- 沖突失敗政策:發生沖突時,編譯失敗(有些新版本庫并不相容之前的,是以這個庫可以讓開發者主動作出選擇)
- 強制指定版本政策:發生沖突時,使用開發者指定的版本
/* 沖突失敗政策設定*/
configurations.all {
resolutionStrategy { failOnVersionConflict() }
}
/* 強制指定版本政策設定*/
dependencies {
compile group:'b',name:'b',version:'1.1', force:true
}