菜鸟Android进阶之gradle依赖管理

菜鸟Android进阶之gradle依赖管理

  首先,Android中的依赖主要分为本地依赖、仓库依赖以及工程模块依赖,接下来我将详细的讲解一下这三种情况。
  •   本地依赖
          本地依赖主要分为三类:jar包、so包、aar包
   jar包         
                jar包通常由我们 拷贝到当前module的libs文件夹下。
           如果只依赖一个jar包,那么我们可以这样
           
  dependencies {
       compile files('libs/domoarigato.jar')
}
         如果我们依赖多个jar包,那么我们可以这样
        
  compile fileTree(dir: 'libs', include: '*.jar')

通过将libs文件夹整体添加为依赖,避免了对libs中的jar包一个个手动添加。

 so包

        通过c/c++写的库称为so包,通常我们将so包放在jniLibs或者libs文件夹下(需要自己创建).

          如果我们存放在libs目录下,则在模块的build.gradle中android根目录下添加

sourceSets {

        main {

            jniLibs.srcDirs = ['libs']

        }

    }

         之后在dependences中加入

dependencies {

    compile fileTree(dir: 'libs', include: '*.jar')

}

         如果保存在jniLibs中,则只需要在android根目录下添加

  sourceSets {

        main {

            jniLibs.srcDirs = ['jniLibs']

        }

 aar包

        对于aar包,通常我们将他们放在创建的aars包下,之后在module的buikd.gradle中加入

repositories {

    flatDir {

        dirs 'aars' 

    }

}
通过这样添加aars文件夹作为项目的依赖库

        之后在dependences中加入

 dependencies {

       compile(name:'libraryname', ext:'aar')

}

         在已经添加依赖库的前提下,在直接通过如上方式使用依赖。

  • 仓库依赖
        gradle常用仓库包括maven、lvy和文件夹。其中最常用的是maven,而文件夹也就是上面的aar实例中添加的aars文件夹。
        而为什么需要仓库,从字面意思理解,仓库是用来放东西的,这里自然是用来放依赖的。比如,maven远程仓库中包含了很多我们常用的依赖包,添加maven远程仓库后  ,在项目需要下载某一个maven仓库中的依赖包时,则 可以通过访问仓库来下载。这样避免了我们手动添加的繁琐和易错。
 maven仓库

buildscript {

    repositories {

        jcenter()

    }

    dependencies {

        classpath 'com.android.tools.build:gradle:2.3.3'

 
  

        // NOTE: Do not place your application dependencies here; they belong

        // in the individual module build.gradle files

    }

}


通常在整个项目的build.gradle中添加整体的远程仓库,如上。其中jcenter是maven其中的一个分支。
gradl中预定义了三个maven仓库:maven仓库、jcenter仓库、本地maven仓库
此外,如果使用其他的maven库,而不是中心maven或者jcenter,则需要在maven方法中加入URl地址

repositories {
       maven {
           url "http://repo.acmecorp.com/maven2"
           credentials {
               username 'user'
               password 'secretpassword'
           }
        } 
   }
如果设置了权限的话,则需要在其中加入用户名和密码


说了这样多,那么远程仓库中下载的依赖包,最后保存在哪里呢,默认保存在C:\Users\xxx\.gradle\caches\modules-2\files-2.1,xxx是你当前电脑的使用者的路径。

而这些依赖包下载一次后就缓存在这里不再下载。

有时候一个项目会依赖很多module,此时如何给整个工程添加这些module呢?
首先在setting.gradle中定义module路径,如下
project(':ccWebSDK').projectDir = new File('Framework/SkyJavaLibrary/WebSDK')
之后添加include ':ccWebSDK',此时该module已经添加到整个项目下
但有的时候我们其他module会依赖其他module,此时又该如何添加依赖呢?
其实很简单,在需要添加依赖的module的build.gradle中添加
compile project(':ccWebSDK')
这样就可以使得该module依赖CCWebSDK。

 
 






猜你喜欢

转载自blog.csdn.net/ckq5254/article/details/77969907