Android知识要点整理(18)----Gradle 之依赖管理

本文介绍Gradle中的依赖管理,包括仓库设置与依赖声明的方法。详细讲述了如何配置Maven、JCenter等仓库,以及如何声明不同形式的依赖项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Gradle 在依赖管理方面非常出色,要添加依赖有多种方式,每种方式都特别方便。接下来就讲一讲以依赖管理方面的要点。

1.仓库(Repositories)

仓库可以看作文件的集合,它可以用来提供依赖源。Gradle 支持3种类型的仓库,如Maven,Ivy和静态文件及目录等等。Gradle本身不会为项目定义任何仓库。如果项目中要使用仓库,需要在配置文件中添加相关的代码。如下所示:

repositories {
    mavenCentral()
    jcenter()
    mavenLocal()
}

JCenter、Maven Center和local Maven Repository 是Gradle 预先配置的三种Maven仓库,可以选择使用其中的任意一种或多种。Maven Center 和 JCenter 是非常有名的在线公共仓库。JCenter 是 Maven Center 的超集,所以完全没有必要同时使用这两者次仓库。
Local Maven Repository 本质是本地曾经使用过的依赖的集合,同时还可以添加自己的依赖到里面。它的默认目录路径是用户主目录的 .m2文件夹下。

如果要使用其他类型的远程仓库,可以直接指定远程仓库的url。如下代码所示:

repositories {
    maven {
        url "http://repo.acmecorp.com/maven2"
        //如果需要验证用户,可以添加验证信息
        credentials {
            username 'user'
            password 'secretpassword'
        }
    }
    ivy {
        url "http://repo.acmecorp.com/repo"
    }
}

同样的,若要要使用本地自建的仓库,比如本地仓库的相对路径是 ../repo,也可以这样子做:

repositories {
    maven {
        url "../repo"
    }
}

//或者

flatDir {
    dirs '../repo'
}

值得一提的是,Android 支持库(support library)有两个本地仓库,目录分别是ANDROID_SDK/extras/google/m2repositoryANDROID_SDK/extras/android/m2repository

2.依赖(Dependencies)

依赖由三个元素确定:group ,name 和version.group 指明创建该库的组织机构,通常是域名反转后的字符串;name 是该库的名称,是库的唯一标识;version是该库的版本号,用于指定想要使用的版本。这三个元素中,只有name元素的必需的,但是通常我们都会写全三个元素。示例如下:

dependencies {
    //形式1
    compile 'com.google.code.gson:gson:2.3'
    compile 'com.squareup.retrofit:retrofit:1.9.0'
    //形式2
    compile group: 'com.google.code.gson', name: 'gson', version:'2.3'
    compile group: 'com.squareup.retrofit', name: 'retrofit' version: '1.9.0'
}

上述的依赖形式支持动态版本号,如下代码所示:

dependencies {
    compile 'com.android.support:support-v4:22.2.+'//动态补丁版本
    compile 'com.android.support:appcompat-v7:22.2+'//动态子版本
    compile 'com.android.support:recyclerview-v7:+'//动态主版本
}

我们还可以添加本地依赖

dependencies {
    //单个文件
    compile files('libs/domoarigato.jar')
    //文件夹
    compile fileTree('libs')
    //添加过滤的文件夹依赖
    compile fileTree(dir: 'libs', include: ['*.jar'])
}

还可以添加本地库的依赖(Native libray),Android 插件默认支持native library的支持。我们只需要在模块根目录(module level)下建立叫jniLibs的文件夹,然后创建各个平台的子目录,往子目录中添加so库文件。如下结构所示:

app
├── AndroidManifest.xml
└── jniLibs
    ├── armeabi
        │ └── nativelib.so
    ├── armeabi-v7a
        │ └── nativelib.so
    ├── mips
        │ └── nativelib.so
    └── x86
        └── nativelib.so

对于从Eclipse移植过来的项目,可能不具备上述目录结构,没关系,我们可以在配置中指定so库文件的路径。代码如下:

android {
    sourceSets.main {
        jniLibs.srcDir 'src/main/libs'
    }
}

除了上述依赖之外,我们还可以建立依赖模块(library project),bibrary project和app project的区别在于前者被后者依赖,前者应用的插件是 apply plugin: 'com.android.library',而后者应用的插件是apply plugin ‘com.android.application'。要将library project 加入依赖管理,需要先在settings.gradle 文件中添加include ':app' ':library',然后在dependencies 代码块中添加如下代码:

dependencies {
    compile project(':library')
}

上面就是依赖管理的要点知识。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值