本文主要是介绍gradle初识,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
gradle初识:主要基于在AndroidStudio下的项目场景,学习gradle。
如此,是对gradle的初步了解。
点击打开链接 gradle初识的mindMap原始文件
一、gradle构建整个项目
在AS中,新建一个Project,表示一个项目;其下可以有多个Module,即是任务,也是模块。实现一个项目下多个任务,并能够实现多版本、多渠道打包是当前应用gradle、学习gradle的动力源泉。
项目下gradle文档主要有图中几个,分别做详细说明。
1,Project#build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript {
//构建过程依赖的仓库
repositories {jcenter()}
<pre name="code" class="html"> //构建过程依赖的仓库
dependencies {
//gradle插件版本
classpath 'com.android.tools.build:gradle:1.2.3' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files }}
//配置整个项目的依赖仓库【父类】allprojects { repositories { jcenter() }} 仓库 repositories声明两次,其中buildScript配置的仓库,是gradle脚本自身需要的资源;allProject下的仓库,是项目所有模块需要的资源。
2,Module#build.gradle
apply plugin: 'com.android.application'
//声明插件,这是一个Android项目【若是Android库,应该是“com.android.library”】
android {
//Android构建过程需要配置参数
compileSdkVersion 22//编译版本buildToolsVersion "22.0.1" //buildTool版本
//忽略lint错误lintOptions {abortOnError false}//签名信息,此处配置了Release版本签名信息signingConfigs {release {storeFile file("pdaKeyStore.jks")//文件存储位置storePassword "12345678"//密码keyAlias "ds365"//别名keyPassword "12345678"//密码}}//打包选项packagingOptions {exclude 'META-INF/LICENSE.txt'exclude 'META-INF/NOTICE.txt'exclude 'META-INF/INDEX.LIST'}defaultConfig {applicationId "com.ds365.pda"minSdkVersion 9targetSdkVersion 22versionCode 1versionName "1.0"//serverDoMain:服务器域名地址
//storeUrl:仓库地址,此处可配置多个manifestPlaceholders = [serverDoMain: "http://IP:端口号/",storeUrl : "http://IP:端口号/"]}buildTypes {
//构建版本配置,major(不能使用main),buffer,test----<span style="font-size:18px;color:#FF0000;">配置不同版本</span>
release {minifyEnabled false //是否开启混淆proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'signingConfig signingConfigs.release}}productFlavors {// 正式站:正式服务器地址(默认),major {}// 测试站:测试服务器地址,构建版本alpha {//测试站版AppId,清单文件中需配置Application[在类中设置变量获取]以及meta-dataapplicationId "com.ds365.pda.test"manifestPlaceholders = [serverDoMain: "http://IP:端口号/",storeUrl : "http://IP:端口号/"]}}//资源设置sourceSets {main {res.srcDirs = ['src/main/res', 'src/main/res/']}alpha {res.srcDirs = ['src/alpha/res', 'src/alpha/res/']}}
}//模块依赖,此处是当前module的依赖,可以配置到Project#build.gradle中去,但那种方法不建议。
dependencies {
//libs下有多个jar文件
<span style="color:#FF0000;"> </span> compile fileTree(include: ['*.jar'], dir: 'libs')compile 'com.android.support:appcompat-v7:22.2.0'
//编译一个jar包文件
compile files('libs/xUtils-2.6.14.jar')compile files('libs/gson-2.2.1.jar')
//导入maven库
compile 'com.android.support:percent:22.2.0'compile 'com.github.subchen:jetbrick-webmvc-fastjson:2.1.1'
}
3,gradle.properties:
配置文件,可配置签名相关信息:keystore位置,密码,keyalias等。
也可以配置本地缓存文件的位置。
4,settings.gradle:
当前文件用于配置多模块。
include ':module-a',':module-b'
则实现当前项目有module-a,
module-b两个模块。
二、配置自动打包环境
添加build.bat文件:
call .//gradlew.bat clean build
即是执行gradle命令,也相当
与:gradlew assemble (只适用于AS中使用,更多细节需要强化)
添加RenameAndDeleteFile.bat文件,重命名必须文件并删除不必要的文件。
::修改文件名
ren .\app\build\outputs\apk\app-alpha-release.apk DS365PDA_test.apk
ren .\app\build\outputs\apk\app-major-release.apk DS365PDA_major.apk::删除冗余文件
del .\app\build\outputs\apk\app-alpha-debug.apk
del .\app\build\outputs\apk\app-alpha-debug-unaligned.apk
del .\app\build\outputs\apk\app-alpha-release-unaligned.apk
del .\app\build\outputs\apk\app-major-debug.apk
del .\app\build\outputs\apk\app-major-debug-unaligned.apk
del .\app\build\outputs\apk\app-major-release-unaligned.apk
这篇关于gradle初识的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!