本文概述
Gradle构建脚本描述了构建项目的过程。大多数项目都不是独立的。他们需要一些文件来编译和测试源文件。例如, 要使用Hibernate, 我们必须在类路径中包含一些Hibernate JAR。 Gradle使用一些独特的脚本来管理依赖项, 需要下载它们。
依赖项用于辅助任务, 例如项目所需的JAR文件和外部JAR。每个依赖项都应用于指定的范围。例如, 依赖项用于编译源代码, 并且某些依赖项将在运行时可用。 Gradle在配置的帮助下表示依赖项的范围, 并且唯一的名称可以识别每个配置。大多数Gradle插件都支持项目的预定义配置。
Gradle考虑了构建和发布项目的结果。发布基于我们定义的任务。它可以将文件复制到本地目录或将其上传到远程Maven或Lvy存储库。我们可以在同一多项目构建中使用来自另一个项目的这些文件。发布任务的过程称为发布。
依赖配置
依赖性配置是一组依赖性和工件。以下是配置的三个主要任务:
- 声明依赖
- 解决依赖性
- 暴露物品以供消费
声明依赖
依赖性是任何项目的重要组成部分。我们必须声明一个依赖项才能使用它。依赖性配置是定义一组依赖性的过程。此功能用于声明外部依赖关系, 我们希望从网络上下载这些依赖关系。
考虑下面的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中, 大多数项目不是独立的。项目需要由其他项目构建的文件进行编译或测试等。例如, 如果要在项目中使用Hibernate框架, 则在编译时需要classpath中的hibernate jar文件。这些文件被称为项目的依赖项。在Gradle中, 我们可以指定项目的依赖关系, Gradle着重于查找这些依赖关系并使之在项目中可用。我们可以从远程Maven或Ivy存储库中下载这些依赖项, 也可以在项目中构建依赖项并将其包括在内。此过程称为依赖性解析。
依赖解决方案提供了优于Ant的优势。使用Ant, 我们可以指定要加载的jar的绝对或相对路径。相比之下, 在Gradle中, 我们必须声明依赖项的名称以定义依赖项。另外, 当我们添加Apache Ivy时, Ant反映了类似的行为, 因此在这种情况下Gradle更好。
项目本身的依赖关系表现为依赖关系。例如, 在hibernate-core中, 我们需要许多必须在类路径上可用的库。因此, 当Gradle测试运行项目时, 它会搜索依赖项并使之可用。这些依赖关系称为传递依赖关系。
评论前必须登录!
注册