android原生,app.gradle调用config.gradle的属性:
参考:(完全按照人家写法,稍作整理作为笔记作为以后参考,不喜勿喷!)
https://www.jianshu.com/p/5d1a84bc5210
https://www.jianshu.com/p/b675c553212f
情况一:文件放在项目的 app目录下
在app.gradle引用:(apply from: 'config.gradle')
情况二:文件放在项目的 项目根目录下
在项目根目录下的build.gradle中引用:(apply from: 'config.gradle')
具体使用:
第一先看config.gradle的代码写法:
ext{/* 必须ext,定义所有project公用参数 */
ApplicationId = "com.bai.news" //包名
MinifyEnabled = false //是否混淆
android = [
compileSdk : 28,// 用于编译的SDK版本
buildTools : "28.0.2",// 用于Gradle编译项目的工具版本
minSdk : 19,// 最低支持Android版本
targetSdk : 28,// 目标版本
versionCode: 1,//版本号
versionName: "1.0",//版本名
kotlin_version:'1.3.30'
]
// App dependencies
appcompatVersion = "28.0.0"
constraintVersion = "1.1.3"
junitVersion = "4.12"
runnerVersion = "1.0.2"
espressoVersion = "3.0.2"
supportV4Version = "26.1.0"
designVersion = "28.0.0"
//公共的(系统的)
roots = [
//项目基本的(每个项目需要的)
"appcompatV7" : "com.android.support:appcompat-v7:${appcompatVersion}",
"constraint" : "com.android.support.constraint:constraint-layout:${constraintVersion}",
"junit" : "junit:junit:${junitVersion}",
"runner" : "com.android.support.test:runner:${runnerVersion}",
"espresso" : "com.android.support.test.espresso:espresso-core:${espressoVersion}",
"appcompatV4" : "com.android.support:support-v4:${supportV4Version}",
"design" : "com.android.support:support-v4:${designVersion}",
]
//bus总线
externalEventBus = 'org.greenrobot:eventbus:3.1.1'
//第三方框架
thirdFrame = [
"gson" :"com.google.code.gson:gson:2.8.0", //gson解析
"glide" :"com.github.bumptech.glide:glide:3.7.0", //glide
"picasso" :"com.squareup.picasso:picasso:2.71828", //picasso
]
//App需要导入的第三方框架
appThirdFrame = [
thirdFrame.gson,
thirdFrame.glide,
thirdFrame.picasso,
]
//res资源文件
resSource = [
'src/main/res',
'src/main/res-main/home',
]
}
第二先看项目build.gradle的对config的引用:
apply from: "config.gradle"//需要引入使用,app gradle才可以调用
buildscript {
ext.kotlin_version = '1.3.30'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
第三先看APP的build.gradle的代码写法:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion rootProject.ext.android.compileSdk
buildToolsVersion rootProject.ext.android.buildTools
defaultConfig {
applicationId ApplicationId
minSdkVersion rootProject.ext.android.minSdk
targetSdkVersion rootProject.ext.android.targetSdk
versionCode rootProject.ext.android.versionCode
versionName rootProject.ext.android.versionName
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled MinifyEnabled
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
buildConfigField "boolean", "LOG_DEBUG", "true"//是否输出LOG信息
}
}
//资源分包 ( https://www.jianshu.com/p/f5a49d54e16e )
sourceSets{
main {
res.srcDirs = [ resSource.each{it} ]
}
}
}
dependencies {
//依赖系统库
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation roots.appcompatV7
implementation roots.appcompatV4
implementation roots.constraint
testImplementation roots.junit
testImplementation roots.design
androidTestImplementation roots.runner
androidTestImplementation roots.espresso
//依赖其他第三方库 形式一
implementation externalEventBus
//导入第三方框架 形式二
appThirdFrame.each {
implementation it
}
}