tysforwork 2019-10-26
Gradle与Ant、Maven类似,是一种项目构建工具,之前使用的Eclipse是使用Ant来实现项目构建的。在AS中第一次创建项目的时候,会自动下载Gradle在AS中第一次创建项目的时候,会自动下载Gradle。不过对国外的网站,网速太慢。
项目gradle文件介绍:
整个项目最主要的gradle配置文件
//声明是Android程序,以前的写法:apply plugin: ‘android’,每一个Module都需要有一个gradle配置文件,语法都是一样,唯一不同的是开头声明的是 apply plugin: ‘com.android.library’(如果由其他的module) apply plugin: ‘com.android.application‘ android { //编译SDK的版本,就是这个项目需要的android SDK版本; compileSdkVersion 21 //android构建工具的版本,目录位于..your_sdk_path/build-tools/XX.XX.XX,buildToolsVersion的版本需要>=CompleSdkVersion; 高版本的build-tools 可以构建低版本编译的android程序; buildToolsVersion "21.1.1" defaultConfig { // 应用的包名,applicationId代表应用的包名 applicationId "me.storm.ninegag" minSdkVersion 14 targetSdkVersion 21 versionCode 1 versionName "1.0.0" } // java版本,android 5.0开始默认安装jdk1.7才能编译 compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } buildTypes { debug { // debug模式 } release { // 是否进行混淆 minifyEnabled false // 混淆文件的位置 proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.txt‘ } } // 移除lint检查的error lintOptions { abortOnError false } } dependencies { // 编译libs目录下的所有jar包 compile fileTree(dir: ‘libs‘, include: [‘*.jar‘]) compile ‘com.android.support:support-v4:21.0.2‘ compile ‘com.etsy.android.grid:library:1.0.5‘ compile ‘com.alexvasilkov:foldable-layout:1.0.1‘ // 编译extras目录下的ShimmerAndroid模块,这一行是因为9GAG中存在其他Module compile project(‘:extras:ShimmerAndroid‘) }
这个目录下有个 wrapper 文件夹,里面可以看到有两个文件,我们主要看下 gradle-wrapper.properties 这个文件的内容:
#Wed May 24 22:58:37 CST 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
可以看到里面声明了gradle的目录与下载路径以及当前项目使用的gradle版本,这些默认的路径我们一般不会更改的,这个文件里指明的gradle版本不对也是很多导包不成功的原因之一。gradle-wrapper的作用就是使用统一的方式来管理gradle,保证gradle使用的是统一的版本。说明几点:
注意:这里需要在.bashrc中增加GRADLE_USER_HOME的变量定义。distributionUrl 决定了这个项目使用的gradle版本,也就是说不同的项目可以使用不同的gradle版本
这个文件是整个项目的gradle基础配置文件:
buildscript { repositories { jcenter() } //配置的就是android gradle 插件的版本,gradle插件的版本号和gradle版本号是对应的,较新的插件版本需要要求较新版的gradle,所以提示你更新gradle; // gralde插件的具体版本。 dependencies { classpath ‘com.android.tools.build:gradle:2.3.2‘ } } allprojects { repositories { jcenter() } }
内容主要包含了两个方面:
这个文件是全局的项目配置文件,里面主要声明一些需要加入gradle的module,我们来看看9GAG该文件的内容:
include ‘:app‘, ‘:extras:ShimmerAndroid‘
文件中的 app, extras:ShimmerAndroid 都是module,如果还有其他module都需要按照如上格式加进去。
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">