[Gradle中文教程系列]-跟我学Gradle-5.2:依赖的分类
来源:互联网 发布:linux ftp 断点续传 编辑:程序博客网 时间:2024/05/18 02:48
依赖的分类
jcenter
,mavenCentral
等仓库提供的依赖 项目依赖 依赖于其它项目(模块)的依赖 文件依赖 依赖存放在本地文件系统中,基于本地文件系统获取依赖 内置依赖 跟随Gradle发行包或者基于Gradle API的一些依赖,通常在插件开发时使用 子模块依赖 还没搞清楚是什么鬼外部依赖
可以通过如下方式声明外部依赖,Gradle支持通过map方式或者g:a:v
的简写方式传入依赖描述,这些声明依赖会去配置的repository
查找。
dependencies { // 采用map方式传入单个 compile group: 'commons-lang', name: 'commons-lang', version: '2.6' // 采用map方式传入多个 compile( [group: 'org.springframework', name: 'spring-core', version: '2.5'], [group: 'org.springframework', name: 'spring-aop', version: '2.5'] ) // 采用简写方式声明 compile 'org.projectlombok:lombok:1.16.10' // 采用简写方式传入多个 compile 'org.springframework:spring-core:2.5', 'org.springframework:spring-aop:2.5'}
项目依赖
此类依赖多见于多模块项目,书写方式如下,其中:
是基于跟项目的相对路径描述符。
compile project(':project-foo')
文件依赖
依赖存在于本地文件系统中,举个栗子,如oracle的OJDBC驱动,中央仓库中没有又没有自建私服此时需要放到项目lib下进行手工加载那么便可采用此种方式,可以通过FileCollection
接口及其子接口提供的方法加载这些依赖(支持文件通配符)
dependencies { // 指定多个依赖 compile files('hibernate.jar', 'libs/spring.jar') // 读取lib文件夹下的全部文件作为项目依赖 compile fileTree('libs') // 根据指定基准目录\包含\排除条件加载依赖 compile fileTree(dir:'libs',include:'spring*.jar',exclude:'hibernate*.jar') }
内置依赖
跟随Gradle发行包或者基于Gradle API的一些依赖,通常在插件开发时使用,当前提供了如下三种
dependencies { // 加载Gradle自带的groovy作为依赖 compile localGroovy() // 使用Gradle API作为依赖 compile gradleApi() /使用 Gradle test-kit API 作为依赖 testCompile gradleTestKit() }
子模块依赖
简单来说就是声明依赖的依赖
或者依赖的传递依赖
,一般情况下如果依赖的库并未用构建工具构建(尤其是一些上古时代的老库),那么Gradle是无法透过源文件去查找该库的传递性依赖的,通常而言,一个模块采用XML(POM文 件)来描述库的元数据和它的传递性依赖。Gradle可以借由此方式提供相同的能力,当然这种方式也会可以改写原有的传递性依赖。这里让druid
连接池依赖了ptj.tiger
的一个库。
dependencies { // 让ptj.tiger作为druid的传递性依赖 compile module("com.alibaba:druid:1.0.26") { dependency("cn.pkaq:ptj.tiger:+") } runtime module("org.codehaus.groovy:groovy:2.4.7") { // 停用groovy依赖的commons-cli库的依赖传递 dependency("commons-cli:commons-cli:1.0") { transitive = false } // 让groovy依赖的ant模块的依赖ant-launcher停用传递性依赖并依赖ant-junit.......... module(group: 'org.apache.ant', name: 'ant', version: '1.9.6') { dependencies "org.apache.ant:ant-launcher:1.9.6@jar", "org.apache.ant:ant-junit:1.9.6" } } }
0 0
- [Gradle中文教程系列]-跟我学Gradle-5.2:依赖的分类
- [Gradle中文教程系列]-跟我学Gradle-5.4:依赖-依赖的更新与缓存
- [Gradle中文教程系列]-跟我学Gradle-5.6:依赖-依赖报告和冲突的解决
- [Gradle中文教程系列]-跟我学Gradle-5.4:依赖-依赖的更新与缓存
- [Gradle中文教程系列]-跟我学Gradle-5.1:依赖的坐标与范围
- [Gradle中文教程系列]-跟我学Gradle-5.5:依赖-构件的上传与发布
- [Gradle中文教程系列]-跟我学Gradle-5.0:依赖-关于依赖管理
- 0.[Gradle中文教程系列]跟我学Gradle-目录
- 1.[Gradle中文教程系列]跟我学Gradle-Gradle的概述、简介和优势
- [Gradle中文教程系列]-跟我学Gradle-14.1:Gradle IDEA集成插件的使用
- [Gradle中文教程系列]-跟我学Gradle-附录-2.Gradle的日志级别
- [Gradle中文教程系列]-跟我学Gradle-4.1:Nexus私服的安装与配置
- [Gradle中文教程系列]-跟我学Gradle-5.3:依赖-管理依赖的版本(传递(transitive)\排除(exclude)\强制(force)\动态版本(+))
- [Gradle中文教程系列]-跟我学Gradle-5.3:依赖-管理依赖的版本(传递(transitive)\排除(exclude)\强制(force)\动态版本(+))
- [Gradle中文教程系列]-跟我学Gradle-5.7:依赖-上传与发布番外篇-发布到Jcenter
- 2.[Gradle中文教程系列]跟我学Gradle-下载和安装Gradle
- [Gradle中文教程系列]-跟我学Gradle-附录:gradle命令行详解
- [Gradle中文教程系列]-跟我学Gradle-8.1-多模块项目 - 概述
- Python3 基础:filter和sorted函数
- 基于RxJava实现事件总线
- form提交 target为iframe的应用。
- 在solaris下解压tgz/tar.gz文件方法及出错解决方法
- androoid framework学习之activity组件
- [Gradle中文教程系列]-跟我学Gradle-5.2:依赖的分类
- swift switch tuple where
- c语言编写扫雷
- libjingle的重要概念之一:Signals
- XML与对象互转
- java中的线程池实现以及代码分析
- java gradle
- Android 5.1 录音流程
- OpenCV SIFT/SURF图片拼接融合