gradle学习(二)

gradle学习(二)

1、setting文件

在gradle中,设置文件默认名字是settings.gradle,放在根目录下,用于初始化和工程树的配置。根工程就是project,子工程就是moduel。

一个子工程或者说是moduel,只有在settings文件中配置了gradle才会去识别,构建的时候才会被打包。诸如

include ':app1',
        ':module_one',
        ':module_two',
        ':router',
        ':library_network',
        ':library_ui'

2、build.gradle

(1)根工程的build.gradle

根工程的构建文件是作用于整个工程,默认情况下包含两个代码块buildscript和allprojects

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.2'
    }
}
allprojects {
    repositories {
    	jcenter()
    }
}

buildscript代码块里的是gradle脚本执行所需要的配置。

​ repositories代码块的作用是用于配置依赖的仓库,用于指定我们依赖文件从哪里下载。

​ dependencies代码块用于配置构建过程中的依赖包

allproject代码块用来声明需要被运用到所有模块的属性和任务,省去对每个project进行配置。

(2)模块的build.gradle

模块的构建文件只作用于对应的模块,可以覆盖根工程的build.gradle任何属性

示例如下所示

apply plugin: 'com.android.application'//1

android {//2
  compileSdkVersion 22
  buildToolsVersion "22.0.1"
  defaultConfig {
    applicationId "com.demo.myproject"
    minSdkVersion 14
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
    }
  buildTypes {
  	release{
  		minifyEnable false
  	}
  }
}
dependencies{//3
	 implementation fileTree(dir: 'libs', include: ['*.jar'])
	 implementation 'com.android.support:support-v4:26.1.0'
}

将上面分成3个代码块进行分析

plugin

第一行apply plugin: ‘com.android.application’ 是导入了Android应用的插件,提供构建、测试、打包Android应用和依赖项目的所有任务

Android

这里的属性可以被使用,是因为我们已经在第一步导入了Android插件。

必须有的属性是 compileSdkVersion buildToolsVersion。

  • compileSdkVersion 用来编译的Android版本号
  • buildToolsVersion 构建工具和编译器使用的版本号

defaultConfig里面可以覆盖AndroidManifest.xml对应的属性,如

  • applicationId可以覆盖packname,指的是app的包名。
  • minSdkVersion和targetSdkVersion可以替换同名的属性。minSdkVersion指的是app支持运行的最小api等级。targetSdkVersion用于通知系统已经在指定版本已经通过测试,从而系统不需要启用任何向前兼容行为。
  • versionCode和versionName用来定义版本号

buildType可以用来构建不同类型的应用。

dependencies

这里定义该工程所有的依赖包

3 Task

1 基础任务

Android中的gradle使用java插件,而java插件使用了基础插件。基础插件定义了assemble和clean任务。java插件定义了check和buildtasks。在基础插件中,这些任务不被实现,也不执行任何操作,被用来定义插件之间的约定,用来添加实际工作的任务。

约定如下

  • assemble 集合项目的输出
  • clean 清理项目输出
  • check 运行所有检测 单元测试和集成测试
  • build 同时运行assemble和check
2 Android 任务

Android插件拓展了基本任务,并实现它们的行为。如下

  • assemble 为每个构建版本创建一个apk,如release debug
  • clean 删除所有的构建内容,build文件下的
  • check 运行lint检查,如果发现一个问题,则可终止构建
  • build 同时运行assemble和check

assemble任务默认依赖于assembleDebug和assembleRelease,如果添加了更多的构建类型则会生成更多的任务。

除此以外还有新的任务

  • connectedCheck:在连接设备或者模拟器上运行测试
  • diviceCheck:一个占位任务,专为其他插件在远端设备运行测试
  • installDebug和installRelease 在连接的设备上安装特定版本
3 如何创建一个任务
task customTask{
	doFisrt{
		println 'customTask : first'
	}
	doLast{
		println 'customTask : last'
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值