教程 > Gradle > Gradle 教程 阅读:34

Gradle 依赖

Gradle 构建脚本描述了构建项目的过程。 大多数项目都不是独立的。 他们需要一些文件来编译和测试源文件。 例如,要使用 Hibernate,我们必须在 classpath 中包含一些 Hibernate JAR。

依赖项用于辅助任务,例如项目所需的 JAR 文件和外部 JAR。 每个依赖项都应用于指定的范围。 例如,依赖项用于编译源代码,其中一些将在运行时可用。 Gradle 在 Configuration 的帮助下表示依赖的范围,并且唯一的名称可以识别每个配置。 大多数 Gradle 插件支持项目的预定义配置。

Gradle 会考虑构建和发布项目的结果。 发布基于我们定义的任务。 它可以将文件复制到本地目录或将它们上传到远程 Maven 或 lvy 存储库。 我们可以在同一个多项目构建中使用来自另一个项目的这些文件。 发布任务的过程称为 发布


依赖配置

依赖配置是一组依赖和工件。 以下是配置的三个主要任务:

  • 声明依赖
  • 解析依赖
  • 暴露工件以消费

声明依赖

依赖是任何项目的重要组成部分。 我们必须声明一个依赖项才能使用它。 依赖配置是定义一组依赖的过程。 此功能用于声明外部依赖项,我们要从 Web 下载。

考虑下面的 Hibernate-core 依赖的例子:

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.+'  
}  

可以在项目的不同阶段使用依赖项。 这些阶段可以是:

  • 编译:在编译时,我们将使用编译项目生产源所需的依赖项。
  • 运行时:生产类在运行时使用这些依赖项。 默认情况下,它还包含编译时依赖项。
  • 测试编译:编译项目的测试源需要这些依赖。 它还包含已编译的生产类和编译时依赖项。
  • 测试运行时:这些依赖项是运行测试所必需的。 它还包含运行时和测试编译依赖项。

解析依赖

该插件使用配置并为定义的任务获取输入。 例如,Gradle 项目使用 Spring Web Framework jar 文件,该文件必须从 Maven Central 下载。

暴露工件以消费

该插件使用用于定义其他项目使用的工件的配置。


依赖管理

软件项目是各种功能的集合。 它很少单独工作。 在大多数情况下,项目依赖于库的可重用性。 此外,可以将一个项目划分为单独的组件以形成模块化系统。 依赖管理是一个以自动化方式声明、解析和使用项目所需依赖的过程。 下图展示了一个 Gradle 项目的结构。

Gradle 依赖管理

Gradle 提供了对依赖管理的内置支持。在 Gradle 中,依赖管理由两部分组成。它们如下:

  • Gradle 必须知道构建或运行项目的项目要求。这些文件被称为项目的依赖项。
  • Gradle 需要构建和上传项目生成的数据。这些文件是项目的声明。

在 Gradle 中,大多数项目不是独立的。项目需要由其他项目构建的文件以进行编译或测试等。例如,如果我们想在项目中使用 Hibernate 框架,我们需要在编译时将 hibernate jar 文件放在类路径中。这些文件被称为项目的依赖项。在 Gradle 中,我们可以指定一个项目的依赖关系,而 Gradle 专注于找到这些依赖关系并使其在项目中可用。我们可以从远程 Maven 或 Ivy 存储库下载这些依赖项,或者我们可以在项目中构建我们的依赖项并包含它。这个过程被称为依赖解析。

依赖关系解析提供了优于 Ant 的优势。使用 Ant,我们可以指定要加载的 jar 的绝对或相对路径。相比之下,在 Gradle 中,我们必须声明依赖项的名称来定义依赖项。此外,当我们添加 Apache Ivy 时,Ant 反映了类似的行为,因此在这种情况下 Gradle 更好。

项目本身的依赖表现为依赖;例如,在 hibernate-core 中,我们需要许多必须在类路径上可用的库。因此,当 Gradle 测试运行项目时,它会搜索依赖项并使其可用。这些依赖关系称为传递依赖关系。

查看笔记

扫码一下
查看教程更方便