Project 工程:待构建的工程 - 一一对应Android Studio 中的Module
build.gradle
文件:本Module的配置脚本
|—plugins {id("")}
插件
|—android {}
配置sdk,应用默认设置等;android
也是一个插件【*.gradle.kts可省略,在Module中配置】
|—dependencies {implementation(”package:name:version”)}
依赖【*.gradle.kts可省略,在Module中配置】
Task 任务:构建Project的子过程
Plugin 插件:定义了一系列Task,并且负责执行相应的Task -plugins { id 'java'}
以com.android.application
插件为例子,整个插件定义了4个顶级任务:
依赖第三方库:dependencies {}
中添加 compile 'package:name:version'
集成签名配置(导入签名文件,键入密码、keyalias等信息)
//加载用于构建Android项目的插件
apply plugin: 'com.android.application'
android { //构建Android项目使用的配置
compileSdkVersion 23 //指定编译项目时使用的SDK版本
buildToolsVersion "23.0.1" //指定构建工具的版本
defaultConfig {
applicationId "com.absfree.debugframwork" //包名
minSdkVersion 15 //指定支持的最小SDK版本
targetSdkVersion 23 //针对的目标SDK版本
versionCode 1
versionName "1.0"
}
buildTypes { //针对不同的构建版本进行一些设置
release { //对release版本进行的设置
minifyEnabled false //是否开启混淆
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' //指定混淆文件的位置
}
}
}
dependencies { //指定当前模块的依赖
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
}
整个工程构建的配置文件
gradle.properties
定义build.gradle
使用的常量(keystore路径,keyalias)
local.properties
定义本地属性(SDK路径)
settings.gradle
多Moudle管理,一次性构建。
rootProject.name
工程源代码的位置(名字)gradlew
gradlew.bat
Module构建命令封装成的批处理文件,可在命令行中执行。
build.gradle
对项目的依赖、版本、插件等进行配置
buildscript {
repositories {
jcenter() //构建脚本中所依赖的库都在jcenter仓库下载
}
dependencies {
//指定了gradle插件的版本
classpath 'com.android.tools.build:gradle:1.5.0'
}
}
allprojects {
repositories {
//当前项目所有模块所依赖的库都在jcenter仓库下载
jcenter()
}
}
在Gradle中,对于java插件,我们需要在build gradle中提供java版本来编译和生成类文件。
构建gradle项目和运行gradle build需要安装Java。
Java version | Gradle version |
---|---|
8 | 2.0 |
9 | 4.3 |
10 | 4.7 |
11 | 5.0 |
12 | 5.4 |
13 | 6.0 |
14 | 6.3 |
15 | 6.7 |
16 | 7.0 |
17 | 7.3 |
18 | 7.5 |
gradle -v
命令行查看版本init.d
文件夹中新建一个init.gradle
文件 ****sourceCompatibility
使用java版本来编译java文件 targetCompatibility
告诉生成的类支持的最小java版本。【java插件,java {}
任务中 】