Gradle build.gradle配置

Gradle build.gradle配置

每个构建脚本build.gradle都有一个默认的Project的实例,脚本中所有的操作都在project实例的作用域

1 项目信息

项目信息指项目的坐标

//group version为project的方法
//项目名称name在settings.gradle中
group 'com.kepus'
version '1.0-SNAPSHOT'

2 插件

插件带有任务/task,比如:war插件有war任务,war任务又依赖的compileJava, processResouces, classes任务

//apply为project的方法
apply plugin: 'java'  //java插件
apply plugin: 'war'   //war插件

3 JDK版本

//sourceCompatibility 为project实例的属性
sourceCompatibility = 1.8

4 仓库地址

按照配置顺序依次取
gradle 仓库地址介绍:https://blog.csdn.net/x_iya/article/details/75040806

//repositories是project一个方法,闭包作为参数
repositories {
    //本地仓库,地址是:D:/application/without/apache-maven-3.3.9/repo
    mavenLocal()
    //应该是maven私服,此处设置为ali的,地址是url
    maven{
        url "http://maven.aliyun.com/nexus/content/groups/public"
    }
    //远程仓库,地址是https://repo1.maven.org/maven2
    mavenCentral()
}

5 依赖配置:

业务代码:编译/compile和运行runtime 2个阶段
测试代码:编译/compile和运行runtime 2个阶段
compile依赖的runtime一定依赖, runtime依赖的compile不一定依赖
业务代码依赖测试代码一定依赖,测试代码依赖的业务代码不一定依赖

//dependencies是project一个方法,闭包作为参数
dependencies {
    //2中依赖添加方式
    testCompile group: 'junit', name: 'junit', version: '4.12'
    //依赖冲突, logback依赖slf4j 1.7.25, log4依赖1.6.0 时 gradle会自动依赖最新版本
    compile "ch.qos.logback:logback-classic:1.2.3"
}

6 多项目构建

settings.gradle作用就是用于多项目构建

多项目构成:allProjects = root项目+各子项目

构建补充

每个构建(build.gradle)至少一个项目,每个项目一个或多个任务

项目/Project

一个项目代表一个组件(jar/war包),构建启动后Gradle会根据build.gradle实例化一个org.gradle.api.Project类

project属性
    group/name(artifact)/version
    属性的其他设置方法:ext或者直接在gradle.properties里面读取(一定是此名称)
project方法
    apply 应用插件
    dependencies 添加依赖
    repositories 添加仓库
    task 定义任务

任务/Task

任务是最小的工作单元,每个任务由动作和任务依赖组成,对应类 org.gradle.api.Task

Task方法
    dependsOn        添加依赖
    doFirst/doLast   定义动作  (任务可以看做一个动作列表)

生命周期
1. 初始化: 根据 build.gradle生成project
2. 配置: 生成task的依赖顺序和执行顺序 注意划分配置代码和执行代码
3. 执行: 执行task的动作代码

你可能感兴趣的:(版本管理及构建)