美文网首页【Android】Android知识Android开发
<NO.3>自从用了Android Studio,G

<NO.3>自从用了Android Studio,G

作者: XLsn0w | 来源:发表于2017-03-22 19:14 被阅读104次

    在现实生活中,要创造一个没有任何外部依赖的应用程序并非不可能,但也是极具挑战的。这也是为什么依赖管理对于每个软件项目都是至关重要的一部分。

    这篇教程主要讲述如何使用Gradle管理我们项目的依赖,我们会学习配置应用仓库以及所需的依赖,我们也会理论联系实际,实现一个简单的演示程序。

    让我们开始吧。

    仓库管理简介

    本质上说,仓库是一种存放依赖的容器,每一个项目都具备一个或多个仓库。

    Gradle支持以下仓库格式:

    Ivy仓库

    Maven仓库

    Flat directory仓库

    我们来看一下,对于每一种仓库类型,我们在构建中应该如何配置。

    在构建中加入Ivy仓库

    我们可以通过URL地址或本地文件系统地址,将Ivy仓库加入到我们的构建中。

    如果想通过URL地址添加一个Ivy仓库,我们可以将以下代码片段加入到build.gradle文件中:

    repositories {

    ivy {

    url "http://ivy.petrikainulainen.net/repo"

    }

    }

    如果想通过本地文件系统地址添加一个Ivy仓库,我们可以将以下代码片段加入到build.gradle文件中:

    repositories {

    ivy {

    url "../ivy-repo"

    }

    }

    我们继续,下面是如何在构建中加入Maven仓库。

    在构建中加入Maven仓库

    与Ivy仓库很类似,我们可以通过URL地址或本地文件系统地址,将Maven仓库加入到我们的构建中。

    如果想通过URL地址添加一个Maven仓库,我们可以将以下代码片段加入到build.gradle文件中:

    repositories {

    maven {

    url "http://maven.petrikainulainen.net/repo"

    }

    }

    如果想通过本地文件系统地址添加一个Maven仓库,我们可以将以下代码片段加入到build.gradle文件中:

    repositories {

    maven {

    url "../maven-repo"

    }

    }

    在加入Maven仓库时,Gradle提供了三种“别名”供我们使用,它们分别是:

    mavenCentral()别名,表示依赖是从Central Maven 2 仓库中获取的。

    jcenter()别名,表示依赖是从Bintary’s JCenter Maven 仓库中获取的。

    mavenLocal()别名,表示依赖是从本地的Maven仓库中获取的。

    如果我们想要将Central Maven 2 仓库加入到构建中,我们必须在build.gradle文件中加入以下代码片段:

    repositories {

    mavenCentral()

    }

    我们继续,下面是如何在构建中加入Flat Directory仓库。

    在构建中加入Flat Directory仓库

    如果我们想要使用Flat Directory仓库,我们需要将以下代码片段加入到build.gradle文件中:

    repositories {

    flatDir {

    dirs 'lib'

    }

    }

    这意味着系统将在lib目录下搜索依赖,同样的,如果你愿意的话可以加入多个目录,代码片段如下:

    repositories {

    flatDir {

    dirs 'libA', 'libB'

    }

    }

    我们继续,下面要讲的是,如何使用Gradle管理项目中的依赖。

    依赖管理简介

    在配置完项目仓库后,我们可以声明其中的依赖,如果我们想要声明一个新的依赖,可以采用如下步骤:

    指定依赖的配置。

    声明所需的依赖。

    让我们看一下详细步骤:

    配置中的依赖分类

    在Gradle中,依赖是按照指定名称进行分类的,这些分类被称为配置项,我们可以使用配置项声明项目的外部依赖。

    Java插件指定了若干依赖配置项,其描述如下:

    当项目的源代码被编译时,compile配置项中的依赖是必须的。

    runtime配置项中包含的依赖在运行时是必须的。

    testCompile配置项中包含的依赖在编译项目的测试代码时是必须的。

    testRuntime配置项中包含的依赖在运行测试代码时是必须的。

    archives配置项中包含项目生成的文件(如Jar文件)。

    default配置项中包含运行时必须的依赖。

    我们继续,下面是如何在项目中声明依赖。

    声明项目依赖

    最普遍的依赖称为外部依赖,这些依赖存放在外部仓库中。一个外部依赖可以由以下属性指定:

    group属性指定依赖的分组(在Maven中,就是groupId)。

    name属性指定依赖的名称(在Maven中,就是artifactId)。

    vertion属性指定外部依赖的版本(在Maven中,就是version)。

    小贴士:这些属性在Maven仓库中是必须的,如果你使用其他仓库,一些属性可能是可选的。打个比方,如果你使用Flat directory仓库,你可能只需要指定名称和版本。

    我们假设我们需要指定以下依赖:

    依赖的分组是foo。

    依赖的名称是foo。

    依赖的版本是0.1。

    在项目编译时需要这些依赖。

    我们可以将以下代码片段加入到build.gradle中,进行依赖声明:

    dependencies {

    compile group: 'foo', name: 'foo', version: '0.1'

    }

    我们也可以采用一种快捷方式声明依赖:[group]:[name]:[version]。如果我们想用这种方式,我们可以将以下代码段加入到build.gradle中:

    dependencies {

    compile 'foo:foo:0.1'

    }

    我们也可以在同一个配置项中加入多个依赖,传统的方式如下:

    dependencies {

    compile (

    [group: 'foo', name: 'foo', version: '0.1'],

    [group: 'bar', name: 'bar', version: '0.1']

    )

    }

    如果采用快捷方式,那可以是这样:

    dependencies {

    compile 'foo:foo:0.1', 'bar:bar:0.1'

    }

    自然地,声明属于不同配置项的依赖也是可以的。比如说,如果我们想要声明属于compile和testCompile配置项的依赖,可以这么做:

    dependencies {

    compile group: 'foo', name: 'foo', version: '0.1'

    testCompile group: 'test', name: 'test', version: '0.1'

    }

    同样的,给力的快捷方式又来了( ̄︶ ̄)

    dependencies {

    compile 'foo:foo:0.1'

    testCompile 'test:test:0.1'

    }

    相关文章

      网友评论

        本文标题:<NO.3>自从用了Android Studio,G

        本文链接:https://www.haomeiwen.com/subject/nygonttx.html