gradle的使用,依赖管理

来源:互联网 发布:windows 2008 dhcp 编辑:程序博客网 时间:2024/05/18 11:28

引用依赖
对Gradle不是很亲切的朋友可以先认识以下Gradle
Gradle基础–认识Gradle

1. 什么是依赖管理

依赖管理可以分为两部分:一是依赖,即项目构建或运行时所需要的一些文件;二是发布,即构建完成后上传到某个地方。

1.1 依赖

大部分的项目都需要第三方库类或项目文件,这些文件就是项目的依赖了。比如JDBC的jar包,junit的jar包等等。Gradle需要你告诉它工程的依赖是什么,在哪里可以找到,然后它帮你加入构建。在依赖中,可能需要去远程仓库下载文件,如maven或Ivy,本地仓库,甚至是另一个项目,这个过程我们称之为依赖解决。
另外,我们所依赖的文件自身可能也有依赖,当Gradle进行构建的时候,它也会去找这些依赖,这个过程我们称之为依赖传递。

1.2 发布

大部分的项目构建的主要目的是生成一些项目之外使用的文件。比如生成jar包,包括文档、源码,然后打包发布出去。这些文件构成了项目的输出内容,并由你决定要对它自己做。比如复制到某个目录,上传到maven或Ivy仓库,在其他项目中使用。这些都可以称之为发布。

2.依赖声明

compile ‘com.google.code.gson:gson:2.3.1’

apply plugin: 'android'  repositories {      mavenCentral()  }  dependencies {      compile group: 'com.google.code.gson', name: 'gson', version: '2.3.1'  }  

这里repositories里的内容声明了maven中央仓库,这是Gradle去找依赖的地方。接着是定义了一个依赖解析json所需要的包。
这里先简单解释,后面的笔记会有更详细的描述。

3、依赖引用

3.1本地依赖

gradle 作为构建工具,能够很方便的使用本地jar包,以下为使用的代码块。

dependencies {    //单文件依赖    compile files('libs/android-support-v4.jar')    //某个文件夹下面全部依赖    compile fileTree(dir: 'libs', include: '*.jar')}

3.2外部依赖

它指的是依赖于一些如在外部构建,存放于类似maven的仓库,或保存在本地文件系统的某个目录中的文件。

定义外部依赖包含group, name和version这三个属性。根据选取的仓库不同,group和version可能不需要。

dependencies {      compile group: 'com.google.code.gson', name: 'gson', version: '2.3.1'  }

除了这种写法之外,还有一种更简洁的写法,就是把这三个属性的值拼接起来,写成这样:”group:name:version”。如下所示:

dependencies {      compile 'com.google.code.gson:gson:2.3.1'} 

3.3远程依赖

Gradle 是在一个仓库里查找外部依赖的。仓库会按照group,name和version的规则来存放文件。Gradle支持不同的仓库格式,如maven,Ivy等。并且提供了多种访问仓库的方式,比如使用本地文件系统或HTTP。
这里需要简单的介绍一下maven的概念。在这里大家先主要认识一下跟大家接触比较多的
mavenCentral()。初识maven仓库
下面是使用maven库的例子

repositories {    //从中央库里面获取依赖    mavenCentral()    //或者使用指定的本地maven 库    maven{        url "file://F:/githubrepo/releases"    }    //或者使用指定的远程maven库    maven{        url "https://github.com/Jackwaiting/BluetoothLibrary_maven"    }}dependencies {    //应用格式: packageName:artifactId:version    compile 'com.google.android:support-v4:r13'}android {}

4、使用Maven 管理库

gradle 对于包的管理,支持filesystem,maven,ivy,这里我重点说说如何利用maven 进行android 依赖包的管理

利用Gradle 发布本地maven 库

我们现在要学习的是,例如发布一个android library 包。

在过去,android library并没有一个很好的包管理方式,简单来说,在gradle出现以前,官方并没有一种用于管理android library 依赖包的方式,一般我们都是直接下载别人的android library project 源码进行集成,而对于第三方的android-maven-plugin 用的是apklib 格式。

而现在,官方终于推出一种android library的打包格式,扩展名为.aar。目前android gradle插件并不支持本地直接使用.aar文件,不过,支持包管理库的引用方式,下面,我为大家说一下,怎么对android library 发布使用。

打包android library

对android library 进行打包直接在library项目下面使用gradle build 即可,然后,你就会在 build/libs 目录下看到两个*.aar文件,一个debug包用的,一个是release 下用的,看个人需求使用,这里我们用的是release 版本的 .aar 文件。

发布脚本

android library project 目录的 build/libs 下创建一个build.gradle 文件

apply plugin: 'maven'group = 'com.youxiachai'artifacts {    //当前aar 文件名    archives file('Gradlelib.aar')}uploadArchives {      repositories {        mavenDeployer {            repository(url: "file://F:/githubrepo/releases")            pom.version  = 'r1'            pom.artifactId = 'gradletest'        }    }}

gradle uploadArchives即可完成包的发布。

完成以上两步就可以直接用maven 引用jar的依赖那样,引用android library 的依赖。

4 0