Gradle学习笔记(二)

来源:互联网 发布:开淘宝企业店铺多少钱 编辑:程序博客网 时间:2024/05/18 00:44

Gradle仓库:

gradle有三种仓库,maven仓库,ivy仓库以及flat本地仓库,各种仓库声明方式如下:

maven{           url "...."}ivy{           url "...."}flatDir{           url "...."}</span>

Gradle任务:

gradle的Android插件提供了四个顶级任务:

assemble   构建项目输出check         运行检测和测试任务build           运行assemble和checkclean          清理输出任务</span>
执行任务可以通过gradlew+任务名称的方式执,执行一个顶级任务会同时执行与其依赖的任务,比如你执行:

gradlew assemble

他会同时执行:
gradlew  assembleDebug
gradlew  assembleRelease

这时会在你项目的build/outputs/apk或者build/outputs/aar目录生成输出文件。

在Android Studio中可以打开右侧gradle视图查看所有任务。

常见操作:

  1. 导入本地jar包
    Android studio 导入本地jar包除了将jar包放到模块的libs目录中外,还要在该模块的build.gradle文件中的dependencies节点下进行如下声明:
    compile files('libs/xxx.jar')    //依赖libs目录下的某个jar包
    注:大家可能注意到在build.gradle文件的dependencies节点下有这样一句话:
    compile fileTree(dir: 'libs', include: ['*.jar'])       意思是依赖libs目录下的所有jar包,就是说我们不用自己再写了,初始化的时候已经写好了。
  2. 因为maven的中央仓库已经有很多可用的资源了,所以用的人也很多,导入maven库:
    就像Androidstudio初始化的时候再build.gradle文件里已经导入过一次了:
    compile 'com.android.support:appcompat-v7:22.2.0'   //依赖appcompat库
    我们在导入的时候,格式为:
    compile 'groupId:artifactId:version'
  3. 依赖某个project,在Eclipse中经常遇到一个项目依赖工程下的另一个项目的情况,类似的Androidstudio也有:
    因为我们的项目是多模块的,假设我们的项目有两个模块:本身的app和module_1,但是app是依赖module_1的,这个时候我们就需要在app的build.gradle文件中dependencies节点下进行如下声明:
    compile project(':module_1')
    再在settings.gradle文件中包含进所有的模块:
    include ':app','module_1'
    因为此时module_1是作为一个库存在的,所以在它本身的build.gradle文件中需要如下声明:
    //声明插件,这是一个Android库,应该是com.android.libraryapply plugin: 'com.android.library'
    而不同于app模块的 应用程序  的声明:

    注意:作为library的模块module_1的build.gradle文件的defaultConfig中是不允许声明applicationId的,而app模块需要声明这个applicationId:




    今天就到这吧,因为开始上班了,后面更新的可能会慢点,有不正确的地方还请指正。



0 0
原创粉丝点击