gradle 学习记录

Gradle解决的问题,解决交付的速度构建不一致的软件。

特点:灵活约定,具有表达性的语言和强大的api.

鲁棒性和强大的依赖管理

可扩展的构建

Gradle wrapper

Wrapper 其实就是对gradle的一层包装,便于在团队开发过程中gradle 构建的版本统一

Gradle wrapper 命令自动生成相关的目录与文件

gradlew 和 gradJew.bat 分别是 Linux 和 Windows 下的可执行脚本 , 它们的用法和 Gradle
原生命令是一样的, Gradle 怎么用,它们也就可以怎么用 。 gradle-wrapper.jar 是具体业务逻辑
实现的 jar 包, gradlew 最终还是使用 Java 执行的这个 jar 包来执行相关 Gradle 操作 。
gradle-wrapper.properties 是配置文件,用 于配置使用 哪个版本的 Gradle 等 , 稍后会详细讲解 。
这些生成的 Wrapper 文件可以作为你项目工程的一部分提交到代码版本控制系统里( Git ) ,
这样其他开发人员就会使用这里配置好的、统一的 Gradle 进行构建开发

项目结构的约定

Api 解析

Project的属性api

因为project中 第一个属性就是 ,默认的文件名,不可修改Build.Gradle

扩展属性:

Ext{

}

Buildscript依赖相关

SourceSet

构建结构

三个基本的构建块:project,task,property.每个构建至少包含一个project,包含多个task

包装器

定制包装器

setting文件

用户于初始化以及工程树的配置,文件名为setting.gradle

setting.gradle作用配置子工程,

2 project与tasks

可以有许多project,Project可以包含多个tasks,task是一个操作,一个原子操作。比如打包,复制文件,一次编译,等同于maven 中的goal.

创建一个任务。

Task task1

{

 doLast{

println ‘helloworld!’

}

}

运行task, gradle task1

任务task

任务之间可以有依赖关系

内置task类型
以任务的名字创建任务

例如:Task task(String name)

任务名字+一个对该任务配置的map对象来创建任务

Def Task task1=task(task1,group:BasePlugin.BULD_GROUP)

任务名+闭包的配置方式

Task ex41{

Description ‘description’

doFirst {

Println ‘创建’

}

}

任务分组与描述

操作符“《《”

在gradle上是doLast方法的短标记形式

插件

应用第三方的插件

第三方发布的作为jar的二进制插件,我们在应用额时候,必须要现在buildscript{} 里配置其classpath才能使用,这个不像gradle为 我们提供的内置插件,

Such as

Buldscript {

Repositories {

Jcenter()

}

Dependencies {

Classpath ‘com.android.tools.build:gradle:1.5.0’

}

}

应用插件:

Apply plugin: ‘com.android.application’

Gradle 本身提供一些基本的概念
和整体核心的框架,其他用于描述真实使用场景逻辑的都以插件扩展的方式来实现,这样的设
计可以抽象的方式提供一个核心的框架,其他具体的功能和业务等都通过插件扩展的方式来实

应用脚本插件:

依赖管理

Gradle dependencies显示完整的依赖树,gradle默认解决的版本冲突的策略是保留最新的版本

强制刷新第三方库

有一个功能不可避免的会依赖第三方库, 有的工具会有缓存,使用最新的需要强制刷新。

. /gradlew --refresh-dependencies assemble

排除传递性依赖

文件依赖

仓库配置

解决版本冲突

设置强制依赖

强制刷新依赖:

多项目构建

调用子项目的task

:subproject:ask

配置项目之间的依赖

跨项目的task依赖

配置子项目

任务分组与描述

Gradle tasks 查看任务的命令

<<  既是doLast方法的标记

插件

插件都是用project.Apply()这个方法来完成的,例如应用插件, apply plugin:’java’,插件都有一个短名称。Java 就是javaPlugin的短名称。

apply plugin: org.gradle.api.plugins.JavaPlugin

还可以写成 apply plugin:JavaPlugin.插件是实现了Plugin接口的简单类。

插件的作用,

  1. 将任务添加到项目中去
  2. 所有默认的设置对已经添加的任务进行预配置。
  3. 向项目中添加依赖配置
  4. 通过扩展对现有的类型添加新的属性和方法

Gradlew 生成的文件

运行gradle wrapper 生成gradlew 以及gradlew.bat 文件,以及在工程目录下面生成gradlew的相应的jar包以及配置文件。

wrapper {
    gradleVersion='5.3.1'
    distributionUrl='http://10.122.46.245:8081/repository/maven-releases/services/gradle/org/gradle/5.3.1/gradle-5.3.1-bin.zip'
}

问题

  1. gradlew 下载不下来,未指定gradle 版本,装私服

Gradle 打包

  • 18
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值