详细学习Gradle构建的依赖声明。该学习记录基于Gradle官方网站资料。本篇参考链接如下:

https://docs.gradle.org/current/userguide/declaring_dependencies.html

声明一个模块作为依赖

通常声明一个模块作为依赖,需要指定这个模块的版本。Gradle提供了一套机制,允许指定动态的版本。

指定固定版本

dependencies { // 固定版本一旦指定就不会变化 implementation 'org.springframework:spring-web:5.0.2.RELEASE'}

不指定版本的依赖

比较大的项目可能不会去单独指定依赖的版本,而是使用constraints来统一管理版本

dependencies { // 这里没有指定依赖的版本 implementation 'org.springframework:spring-web'}dependencies { constraints { // 在constraints内部指定版本 implementation 'org.springframework:spring-web:5.0.2.RELEASE' }}

动态指定版本

dependencies { // 这里指定版本必须为5以上 implementation 'org.springframework:spring-web:5.+'}

通常,Gradle会在缓存中保存上一次取得的版本24小时。24小时之后如果发现有更新的版本,会去取得更新的版本。

指定未完成版本

dependencies { implementation 'org.springframework:spring-web:5.0.3.BUILD-SNAPSHOT'}

如上,一般带有-SNAPSHOT后缀的版本是还在开发中的版本。和动态指定一样, 24小时后会到仓库中寻找是否有更新版本。

通过参数指定版本

dependencies { implementation('org.slf4j:slf4j-api') { version { strictly '[1.7, 1.8[' prefer '1.7.25' } } constraints { implementation('org.springframework:spring-core') { version { require '4.2.9.RELEASE' reject '4.3.16.RELEASE' } } }}

声明文件依赖

有时可能会需要一些文件依赖, 这些文件保存在本地或者远程的共享文件夹中。这种共享文件夹式的仓库时没有.metadata的。

所以需要指定文件的名字

configurations { antContrib externalLibs deploymentTools}dependencies { antContrib files('ant/antcontrib.jar') externalLibs files('libs/commons-lang.jar', 'libs/log4j.jar') deploymentTools(fileTree('tools') { include '*.exe' })}

声明工程依赖

多工程构建的时候, 经常会发生工程间的依赖。

project(':web-service') { dependencies { implementation project(':utils') implementation project(':api') }}

指定特定的资源

以下三种情况,可能需要指定特定的资源,而不时把整个jar包或者特定资源的传递依赖都下载到本地。

1 这个依赖时一个非标准资源, 比如一个zip文件

2 模块的.metadata定义了多个资源,但是我们只想要其中之一

3 我们只想要模块中的一个资源, 儿不需要它的传递依赖

下面的示例展示了从一个模块中只取得js类库

repositories { ivy { url 'https://ajax.googleapis.com/ajax/libs' patternLayout { artifact '[organization]/[revision]/[module](.[classifier]).[ext]' } }}configurations { js}dependencies { js 'jquery:jquery:3.2.1:min@js'}

Classifier表示资源的种类。比如java的情况下,可能java的class在一个jar包中,它的源代码在另一个包中,它的javadoc在第三个包中。

那么这三个包的名字中会用classifier来表明不同。比如

XXXX.jar

XXXX.sources.jar

XXXX.javadoc.jar

gradle 上传jar包_Gradle学习记录014 关于依赖的声明相关推荐

  1. gradle 上传jar包_gradle 打包jar上传到nexus 同时上传源码jar

    以我们实际项目为例,项目中后台和前台单独开发,之间通过dubbo接口调用,后台提供服务接口,具体实现对前台隐藏,前台使用某个服务时,下载相应依赖然后调用,因此需要将服务接口打成jar包,上传到仓库中, ...

  2. 发布/上传Jar包到Maven中央仓库 - 史上最详细

    发布 Jar 包到 Maven 中央仓库 在项目开发过程中,我们常常会使用 Maven / Gradle 从仓库拉取开源的第三方 jar 包,可能是私有仓库,可能是 Maven 中央仓库,也可能是第三 ...

  3. 如何在私服上传jar包

    1.上传jar包到私服,需要先登录帐号 用户名:admin 密码:admin123 2.选择第三方库 3 输入完成后点击Add Artifact 然后点击下方Upload Artifact,如下图所示 ...

  4. nexus : maven上传jar包到nexus私服后的存放路径以及保存的数据结构

    文章目录 1.美图 2.背景 1.美图 2.背景 因为要上传我的所有仓库的包,希望nexus中已有的包,我不覆盖,没有的添加.所以想批量上传jar.所以想知道这些jar都存放在哪里了? maven上传 ...

  5. maven使用中央仓库没有的jar包001---Maven自定义上传第三方包到3rd party(第三方无依赖jar和本地扩展类加入maven统一管理)

    Maven自定义上传第三方包到3rd party(第三方无依赖jar和本地扩展类加入maven统一管理) 注:如果图片太小,则可以下载查看,CSDN,不提供点击放大! 1:用浏览器登陆nexus服务器 ...

  6. maven安装 maven上传jar包到库里面

    maven的安装与配置:http://pansanday.blog.163.com/blog/static/381662802012727103454743/ maven上传jar包到库里面: 将私有 ...

  7. maven私服上传jar包

    maven私服上传jar包 登录maven私服 上传jar 登录maven私服 点击Repositories,选择上传到的仓库 3rd party 上传jar 选择Artifact Upload 选择 ...

  8. maven的pom的配置(上传jar包,配置私库,配置第三方库)

    maven仓库配置 仓库优先级为:本地仓库(localRepositories) > profile中的repositories仓库 > POM > mirrors全局仓库 mave ...

  9. 通过mvn命令上传jar包到nexus

    通过mvn命令上传jar包到nexus mvn deploy:deploy-file -DgroupId=xxx.xxx.xxx (对应pom文件标签) -DartifactId=xxx-xxx (对 ...

最新文章

  1. Github标星3K+,超轻量级中文OCR,支持竖排文字识别、ncnn推理,总模型仅17M
  2. 微软研究员在ImageNet计算机视觉识别挑战中实现里程碑式突破
  3. 【网络安全】什么是应急响应,应急响应中你到底该关注哪些指标?
  4. 邮件头解析=?utf-8?Q?乱码
  5. selenium 状态码521_sqlmap对状态码404处理的bug
  6. linux route命令的使用详解(转)
  7. IOS开发--TextField
  8. django settings 定义的变量不存在_使用Django部署机器学习模型(1)
  9. 【JS】实时监控页面,input框数值自动求和
  10. 回溯应用-- 0-1背包问题
  11. 360浏览器 ajax取缓存,web开发遇到的坑之360浏览器缓存问题
  12. Team Foundation Server 2010 安装、部署与配置(二):安装之前的预备工作 .
  13. 生活质量衡量系统_16个你需要了解的DevOps指标,助你提升软件质量
  14. 关于ionic中几个问题
  15. 积分简明笔记-第二类曲线积分的类型
  16. 基于置信加权池的全卷积保证颜色恒常性
  17. 商品管理系统(可用于学生参考)
  18. Android studio 实现app登录注册页面
  19. python爬取淘宝数据遇见的坑
  20. 互联网让我的人生逆袭

热门文章

  1. web存储机制localStorage和sessionStorage
  2. git clone 指定分支的内容
  3. CSS常用的元素居中方法
  4. xcode8注释快捷键失效问题
  5. 为什么苹果不再需要谷歌地图?
  6. CYQ.DBImport 数据库反向工程及批量导数据库工具 V2.0 发布[增加批量导出数据库脚本及数据库设计文档]...
  7. hdfs为什么要用block以及block大小的设置
  8. 在Ubuntu下安装jdk解压出现问题:./jdk-6u30-linux-i586.bin: 113: ./install.sfx.3631: not found
  9. Excel——多个Sheet页合并成一个
  10. Datawhale-零基础入门NLP-新闻文本分类Task01