让人迷茫的gradle

Gradle

  • Gradle支持多工程构建和局部构建
  • Gradle支持远程或本地依赖管理:
  1. 从远程maven仓
  2. nexus私服
  3. ivy仓库以及本地仓库依赖
  • Gradle与Ant、Naven兼容
  • Gradle适用灵活
  • Gradle可轻松前一:适用任何结构的工程,可以在同一个开发平台平行构建原工程和Gradle工程
  • Gradle可以更容易的集成到自动花构建系统

local.properties
该文件位于项目根目录,一般用来配置本地环境属性,如sdk!

sdk.dir=/Users/zhangsan/Library/Android/sdk

settings.gradle
该文件位于项目跟目录,其中包含项目所包含的Module

include ':app'
include ':library'

build.gradle
该文件位于项目根目录,用于定义适用项目所有模块的构建配置

buildscript { 	//定义项目中所有哦模块公用的Gradle 存储区和依赖区
    repositories {//依赖库的路径
        google()
        jcenter()
    }
    dependencies {//添加插件
       classpath 'com.android.tools.build:gradle:3.2.0'
    }
}
allprojects {
    repositories { //项目中依赖库的路径
    	jcenter()
        google()
        mavenCentral()
    }
}
//打包钱执行clean任务
task clean(type:Delete){
	delete rootProject.buildDir
}

app Module下的buil.gradle
该文件位于项目的Module目录下,用于配置适用于所在模块的构建配置

//插件
apply plugin: 'com.android.application'//这标表示此module是一个可运行的应用程序,可以直接run的
apply plugin:'com.android.library'//这表示此module是个依赖库的工程,不可直接run
apply plugin:'java'//表示此module是一个java项目,在此module中只能适用java的api
apply from: 'xxx.gradle'//引用gradle

android {
  compileSdkVersion 27    //编译sdk版本
  buildToolsVersion "27.0.1"  //编译时采用的构建工具版本
  
//defaultConfig闭包参数,可以覆盖Manifest.xml文件,配置应用的版本
  defaultConfig {
    applicationId 'com.example.demo'      //唯一应用ID<至少包含两段,即一个圆点;字母数字下划线;字母开头> 一般情况下和包名相同,但也可以修改报名,和manifest文件保持一致就行
    minSdkVersion 19	// 可运行的最小系统版本
    targetSdkVersion 26	 // 可运行的最高系统版本
    versionCode 1	   // 版本号
    versionName "1.0"	  // 版本名
    multiDexEnabled true    //方法数超过64k ,minsdk>=21  只需配置这里,否则还要添加依赖包如下;然后配置文件重命名MultiDexApplication;或者继承MultiDexApplication;或者在自己的application中重写attachBaseContext,然后MultiDex.install(this);
     ndk {	 //ndk过滤so包(以下为只支持v7包);如果error,在gradle.properties文件中添加Android.useDeprecatedNdk=true
            abiFilters "armeabi-v7a"
        }
    //buildTypes闭包参数说明,默认有release和debug两种,默认只显示release方式,一般是正式发布的包
	buildTypes{
    	release{
    		minifyEnabled false	//混淆开关
    		//指定混淆文件及混淆文件规则配置文件的位置
    		proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
    	}
    }

  }
dependencies{
	implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])//编译文件树(编译依赖libs目录下所有jar)
    implementation project(':Name') //是将另一个module进行编译并打包
    implementation (name:'xxx', ext:'jar')
    implementation 'androidx.appcompat:appcompat:1.0.2'
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值