引用依赖
对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 的依赖。