您的位置:首页 > 其它

Gradle 教程说明 用户指南 第8章依赖管理基础

2014-11-24 15:09 609 查看

8.1 什么是依赖管理?

依赖管理非常粗略地分为两部份:

· build 依赖自什么东西

· build 发布什么东西

8.2 声明你的依赖

让我们来看看一些依赖声明。这是一个基本构建脚本:

例,声明依赖

build.gradle:
apply plugin: 'java'

repositories {

    mavenCentral()

}

dependencies {

    compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'

    testCompile group: 'junit', name: 'junit', version: '4.+'

}

这个构建脚本说,有关该项目的几件事情。首先,它指出Hibernate的核心3.6.7.Final需要参与编译项目。

这意味着,Hibernate的核心,需要在运行时依赖。

构建脚本还规定,编译该项目的测试需要junit> = 4.0。

它还告诉Gradle在Maven的存储库查找所需的任何依赖关系。

8.3 依赖配置

一个配置是一个简单的命名集的依赖。我们将把它们作为依赖的配置。

你可以用它们来定义项目的外部依赖。正如我们将在后面看到,他们还用定义项目的发布。

Java插件定义了一些标准配置。这些配置代表了Java插件使用的类路径。下面列出一些:

compile

编译source code 需要的依赖。

runtime

在运行时所必需的产生classes的依赖关系。默认情况下,还包括编译时的依赖。

testCompile

编译该项目的测试源码 所需要的依赖。默认情况下,还包括编译产生classes和编译时的依赖。

testRuntime

运行测试需要的依赖。默认情况下,还包括编译,运行和测试编译依赖。

8.4 外部依赖

有多种类型的依赖,你可以定义。

外部依赖:依赖于当前构建工程之外的一些文件,并且是存储在仓库中的,比如Maven的中央,或企业Maven或Ivy库,或在本地文件系统中的目录。

例,外部依赖的定义

build.gradle:
dependencies {

    compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'

}

外部依赖性,使用标识组,名称和版本属性。依赖哪种仓库,组和版本是可选的。

定义外部依赖的快捷形式看起来像“ 组:名称:版本 ”。

例,外部依赖的快捷定义

build.gradle:
dependencies {

    compile 'org.hibernate:hibernate-core:3.6.7.Final'

}

8.5 仓库

Gradle在一个库中寻找外部依赖。存储仓库仅是一个文件集合,由group、name、version组成。

Gradle了解几种不同的储存库格式,如Maven和Ivy,和访问资源库的几种不同的方法,如使用本地文件系统或HTTP。

默认情况下,Gradle没有定义任何资源库。您需要定义至少一个,然后才能使用外部依赖。

例,Maven的中央存储库的使用

build.gradle:
repositories {

    mavenCentral()

}

例,远程Maven仓库的使用

build.gradle:
repositories {

    maven {

        url "http://repo.mycompany.com/maven2"

    }

}

例,远程Ivy目录的用法

build.gradle:
repositories {

    ivy {

        url "http://repo.mycompany.com/repo"

    }

}

您也可以在本地文件系统上的存储库。这适用于Maven和Ivy库。

例如8.7。本地Ivy目录的使用

build.gradle
repositories {

    ivy {

        // URL can refer to a local directory

        url "../local-repo"

    }

}

一个项目可以有多个存储库。Gradle将按指定的顺序在每个库中寻找依赖,最先在某个库中找到就停止。

8.6 发布 

依赖的配置也被用来发布文件。

通常不需要特别告诉Gradle什么需要发布。但是,你需要告诉Gradle在哪里发布。您可以通过连接库的uploadArchives任务。

这里是发布到远程Ivy库的例子:

例,发布到Ivy库

build.gradle:
uploadArchives {

    repositories {

        ivy {

            credentials {

                username "username"

                password "pw"

            }

            url "http://repo.mycompany.com"

        }

    }

}

现在,当你运行gradle uploadArchives,Gradle将建立并上传你的Jar文件。Gradle也会生成并上传ivy.xml。

您也可以发布到Maven仓库。语法稍有不同。请注意,您还需要使用Maven插件,以发布到Maven仓库。

这时,Gradle将生成并上传pom.xml。

例,发布到Maven仓库

build.gradle:
apply plugin: 'maven'

uploadArchives {

    repositories {

        mavenDeployer {

            repository(url: "file://localhost/tmp/myRepo/")

        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: