一、Gradle依赖管理
1、工件坐标 group 、name、version
2、常用仓库
-
- mavenLocal / mavenCentral / jcenter
- 2.自定义maven仓库(自己搭建maven私服,内部)
repositories {//阿里云
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}
- 3.文件仓库(基本不用)
3、依赖具有传递性
4、依赖阶段配置
-
compile : 依赖的包,编译并打包到最终的 apk 文件中。
-
provided : 依赖的包只参与编译而不会打包到最终的 apk 文件中。
-
runtime : 适用于依赖的包只作用在运行时而不需要在编译时
#二、Gradle依赖冲突的解决方式
Gradle依赖冲突解决冲突的方法一般都是让gradle自动处理。
1、查看依赖报告
2、排除传递性依赖解决冲突/强制一个版本解决冲突
①修改后产生冲突构建失败,修改策略手动解决。
②排除(低版本)传递性依赖的时候module就是坐标中的name属性。
transitive是排除所有传传递依赖(一般不用)
③强制指定一个版本。
3、gradle默认依赖最高级版本的依赖
三、gradle多项目构建、添加logback日志功能、以及相关配置
项目模块化
1、所有项目使用java插件(这里以java为例,大家可以根据自己的项目决定)
在根项目的build.grdle中配置,子项目中的参数删除
allprojects {//对所有项目应用
apply plugin: 'java'
sourceCompatibility = 1.8
}
//特殊应用的模块在直接的build.gradle中声明即可
这里的配置是有顺序的allprojects必须在subprojects的上方(别问我为啥。说多了都是泪)
2、配置Web子项目打包成war
在web模块build.grdle中配置apply plugin: 'war'
3、所有项目添加logback日志功能
subprojects {
repositories {
mavenLocal()//本地仓库
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
mavenCentral()
}
dependencies {//统一配置了项目中的junit
testCompile group: 'junit', name: 'junit', version: '4.12'
compile 'ch.qos.logback:logback-classic:1.3.0-alpha4'
}
}
4、统一配置group 和version
在根项目下新建gradle.properties 文件
group =com.du.gradle//之这里的group不能加引号,不然插件发布时会报错
version = '1.0-SNAPSHOT'
5、子项目之间的依赖
本项目模块build.grdle中配置compile project(“:model”)
备注:
①根目录下的settings.gradle是用的管理根项目和子项目的
②相同的项目建议在根项目的build.gradle中配置(便于维护管理)
四、Gradle项目自动化测试
1、测试配置
dependencies {//统一配置了项目中的junit
testCompile group: 'junit', name: 'junit', version: '4.12'
}
2、测试任务原理流程
对Java源代码处理->对测试源代码处理->校验、构建
3、测试发现需要满足的条件
-
任何继承 junit.framework.TestCase 或 groovy.utilGroovyTestCase 的类
-
任何被 @RunWith 注解的类
-
任何至少包含一个被 @Test 注解的类
五、Gradle项目的发布
1、流程图
2、添加发布插件和配置参数
apply plugin: 'maven-publish'//添加插件
publishing{//配置参数
publications{
myPublish(MavenPublication){//myPublish是我们自定义的名称
from components.java//把java产生的输出发布到仓库
}
}
repositories{
maven{
name "myRepo"//名称自定义
url ""//私服地址
}
}
}
3、运行任务进行发布