gradle 上传jar包_Gradle学习记录014 关于依赖的声明
详细学习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 关于依赖的声明相关推荐
- gradle 上传jar包_gradle 打包jar上传到nexus 同时上传源码jar
以我们实际项目为例,项目中后台和前台单独开发,之间通过dubbo接口调用,后台提供服务接口,具体实现对前台隐藏,前台使用某个服务时,下载相应依赖然后调用,因此需要将服务接口打成jar包,上传到仓库中, ...
- 发布/上传Jar包到Maven中央仓库 - 史上最详细
发布 Jar 包到 Maven 中央仓库 在项目开发过程中,我们常常会使用 Maven / Gradle 从仓库拉取开源的第三方 jar 包,可能是私有仓库,可能是 Maven 中央仓库,也可能是第三 ...
- 如何在私服上传jar包
1.上传jar包到私服,需要先登录帐号 用户名:admin 密码:admin123 2.选择第三方库 3 输入完成后点击Add Artifact 然后点击下方Upload Artifact,如下图所示 ...
- nexus : maven上传jar包到nexus私服后的存放路径以及保存的数据结构
文章目录 1.美图 2.背景 1.美图 2.背景 因为要上传我的所有仓库的包,希望nexus中已有的包,我不覆盖,没有的添加.所以想批量上传jar.所以想知道这些jar都存放在哪里了? maven上传 ...
- maven使用中央仓库没有的jar包001---Maven自定义上传第三方包到3rd party(第三方无依赖jar和本地扩展类加入maven统一管理)
Maven自定义上传第三方包到3rd party(第三方无依赖jar和本地扩展类加入maven统一管理) 注:如果图片太小,则可以下载查看,CSDN,不提供点击放大! 1:用浏览器登陆nexus服务器 ...
- maven安装 maven上传jar包到库里面
maven的安装与配置:http://pansanday.blog.163.com/blog/static/381662802012727103454743/ maven上传jar包到库里面: 将私有 ...
- maven私服上传jar包
maven私服上传jar包 登录maven私服 上传jar 登录maven私服 点击Repositories,选择上传到的仓库 3rd party 上传jar 选择Artifact Upload 选择 ...
- maven的pom的配置(上传jar包,配置私库,配置第三方库)
maven仓库配置 仓库优先级为:本地仓库(localRepositories) > profile中的repositories仓库 > POM > mirrors全局仓库 mave ...
- 通过mvn命令上传jar包到nexus
通过mvn命令上传jar包到nexus mvn deploy:deploy-file -DgroupId=xxx.xxx.xxx (对应pom文件标签) -DartifactId=xxx-xxx (对 ...
最新文章
- Github标星3K+,超轻量级中文OCR,支持竖排文字识别、ncnn推理,总模型仅17M
- 微软研究员在ImageNet计算机视觉识别挑战中实现里程碑式突破
- 【网络安全】什么是应急响应,应急响应中你到底该关注哪些指标?
- 邮件头解析=?utf-8?Q?乱码
- selenium 状态码521_sqlmap对状态码404处理的bug
- linux route命令的使用详解(转)
- IOS开发--TextField
- django settings 定义的变量不存在_使用Django部署机器学习模型(1)
- 【JS】实时监控页面,input框数值自动求和
- 回溯应用-- 0-1背包问题
- 360浏览器 ajax取缓存,web开发遇到的坑之360浏览器缓存问题
- Team Foundation Server 2010 安装、部署与配置(二):安装之前的预备工作 .
- 生活质量衡量系统_16个你需要了解的DevOps指标,助你提升软件质量
- 关于ionic中几个问题
- 积分简明笔记-第二类曲线积分的类型
- 基于置信加权池的全卷积保证颜色恒常性
- 商品管理系统(可用于学生参考)
- Android studio 实现app登录注册页面
- python爬取淘宝数据遇见的坑
- 互联网让我的人生逆袭
热门文章
- web存储机制localStorage和sessionStorage
- git clone 指定分支的内容
- CSS常用的元素居中方法
- xcode8注释快捷键失效问题
- 为什么苹果不再需要谷歌地图?
- CYQ.DBImport 数据库反向工程及批量导数据库工具 V2.0 发布[增加批量导出数据库脚本及数据库设计文档]...
- hdfs为什么要用block以及block大小的设置
- 在Ubuntu下安装jdk解压出现问题:./jdk-6u30-linux-i586.bin: 113: ./install.sfx.3631: not found
- Excel——多个Sheet页合并成一个
- Datawhale-零基础入门NLP-新闻文本分类Task01