每一个项目都有一个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
}