gradle学习之旅 依赖声明

Posted The_shy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gradle学习之旅 依赖声明相关的知识,希望对你有一定的参考价值。

gradle项目的依赖类型

依赖API


上图是项目、依赖处理器、依赖 的类图表示

  • gradle项目有一个DependencyHandler实例,通过getDependencies()方法来取得引用。
  • 声明依赖需要通过dependencies配置块中的依赖处理器方法来声明
  • 每个依赖都是一个Dependency类型的一个实例,group、name、version、classifier属性明确的标识了一个依赖。

外部模块依赖

gradle中,外部类库通常以JAR文件的形式存在,被称为外部模块依赖。这种类型依赖的特点是在仓库中能够通过属性明确地标识。

依赖属性

  • group:通常用来标识一个组织、公司、或项目。group可以用点标记法,但非强制,如org.hibernate。
  • name:一个工件的名称,唯一描述了依赖。
  • version:一个工件可以有不同版本
  • classifier:有时一个工件会定义这个属性,来区分具有相同group、name、version属性的工件,但他需要进一步规范,比如说根据运行时环境来定义。

依赖标记

  • 依赖声明语法
dependencies{
    configurationName dependencyNotation1,dependencyNotation2,...
}
  • dependencyNotation的格式
    • group:groupString, name:nameString, version:versionString
    • "groupString:nameString:versionString"

使用外部模块依赖需要在repositories配置快中添加仓库。

依赖检查报告

使用gradle dependencies运行dependencies help task时,会显示出当前项目完整的依赖树,依赖树显示了在构建脚本中声明的顶层依赖以及它们的传递性依赖。

  • 标有*号的依赖表示被排除
  • 针对版本冲突Gradle默认的解决策略是获取最新的版本。

排除传递性依赖

Gradle可以完全控制传递性依赖。

  • 排除一个依赖,可以通过快捷或map标记来声明排除依赖。比如:
dependencies {
    cargo(\'org.codehaus.cargo:cargo-ant;1.3.1\'){
        exclude group: \'xml-apis\' , module: \'xml-apis\'
    }
}
  • 排除虽有传递性依赖
dependencies {
    cargo(\'org.codehaus.cargo:cargo-ant;1.3.1\'){
        transitive = false
    }
}

动态声明版本

在声明依赖时将版本号写为1.+,就会获取依赖类库的最新的1.X版本

文件依赖

依赖于文件系统上的文件,无需声明仓库
语法如下

dependencies {
    compile fileTree(dir:dirString , include: \'*.jar\')
}

这样便可依赖dirString目录下的一系列jar。

以上是关于gradle学习之旅 依赖声明的主要内容,如果未能解决你的问题,请参考以下文章

gradle学习之旅 本地依赖缓存与解决依赖问题

Kotlin学习之旅解决错误:kotlin.NotImplementedError: An operation is not implemented: Not yet implemented(代码片段

如何使用模块化代码片段中的LeakCanary检测内存泄漏?

gradle学习之旅 使用gradle构建简单的java web项目

Spring学习笔记——Spring之旅

我的C语言学习进阶之旅解决 Visual Studio 2019 报错:错误 C4996 ‘fscanf‘: This function or variable may be unsafe.(代码片段