给Android工程添加依赖

前言

前一篇博客详细讲了怎样建立一个安卓工程,见从零构建Android工程,今天在它的基础上演示怎样对主工程添加依赖。java

进入主题以前,先声明下,build版本3.x以上已不在支持compile指令,使用implementationapi。假设有两个 module A 和 B,而且 A 依赖 B。若是在 B 中使用implementation依赖了jar、aar或module,那么 A 中没法获取到被依赖库的 api。所以,api 指令诞生了。git

依赖jar

app目录下新建libs文件夹,并将须要的jar文件拷贝到libs目录下。github

方式一:spring

逐个jar文件添加依赖。json

implementation files('libs/json_simple-1.1.jar')
复制代码

方式二:api

依赖整个libs目录app

implementation fileTree(include: '*.jar', dir: 'libs')
复制代码

两种方式能够共存。若是被依赖的module中有jar要传递依赖,则能够单独使用api指令声明。不推荐使用api fileTreemaven

依赖aar

aar是Android专用的库形式,aar文件不只包含java代码(class.jar文件),还能够包含asset目录和res目录的资源。同jar同样,有两种依赖方式,而且都放在libs目录。gradle

方式一:ui

逐个aar文件添加依赖。

implementation(name: 'fbcore-1.5.0', ext: 'aar')
复制代码

若是出现提示Failed to resolve: :fbcore-1.5.0:,那么还须要添加:

repositories {
    flatDir {
        dirs 'libs'
    }
}
复制代码

该配置能够放在module的build.gradle文件,还能够放在项目的build.gradle文件中。

allprojects{
    repositories{
        jcenter()
        google()

        flatDir {
            dirs 'libs'
        }
    }
}
复制代码

方式二:

依赖整个libs目录

implementation fileTree(include: '*.aar', dir: 'libs')
复制代码

同jar同样,两种方式能够共存。

可是,下面两张图中,第一张是逐个aar依赖的,第二张是依赖整个libs目录的。

所以仍是建议逐个aar依赖,在工程目录中显示效果更友好些。

依赖module

从零构建Android工程,已经描述了怎样建立并依赖module

依赖外部module

一般状况下,咱们依赖的module同主module在同一个工程目录下,用上述方式依赖便可。可是,AndroidStudio还支持依赖其余位置文件夹的module

首先制造如图的目录结构,libraryDemo工程目录同级。

其次在settins.gradle文件夹中添加:

include 'libModule'
project(':libModule').projectDir = new File(settingsDir, "../library")
复制代码

构建后,工程结构如图

使用implementation project(':libModule')与主项目关联。

依赖远程库

Gradle已经支持三个maven库地址。已经包含了大多数经常使用的开发库。

repositories{
    jcenter()
    google()
    mavenCentral()
}
复制代码

一般咱们使用本身开发的maven库或使用别人的maven库不在上述的三个仓库中,那么须要指定maven库地址。

repositories {
    maven { url "http://maven.springframework.org/release" }
    maven { url "https://maven.fabric.io/public" }
}
复制代码

上面的地址仅供参考,并不是实际的仓库地址,须要修改为库的实际地址。

配置好maven库地址后,接下来就能够直接引用远程库。

implementation 'com.google.code.gson:gson:2.8.5'
复制代码

上述远程库名称由三部分构成,groupidartifactidversion

  • groupid:前半部分,com.google.code 表示该库隶属的组织或公司,后半部分gson表示该公司的项目名称。
  • artifactid:表示模块名称。
  • version:版本

此处是广告Flueky的技术小站

相关文章
相关标签/搜索