Java开发手册之二方库依赖
- 【强制】定义GAV遵从以下规则:
1) GroupID格式:com.{公司/BU }.业务线.[子业务线],最多4级。
说明:{公司/BU}
例如:alibaba/taobao/tmall/aliexpress
等BU一级;子业务线可选。
正例:com.taobao.jstorm
或com.alibaba.dubbo.register
2) ArtifactID格式:产品线名-模块名。语义不重复不遗漏,先到中央仓库去查证一下。
正例:dubbo-client / fastjson-api / jstorm-tool
3)Version
:详细规定参考下方。 - 【强制】二方库版本号命名方式:主版本号.次版本号.修订号
1) 主版本号:产品方向改变,或者大规模API不兼容,或者架构不兼容升级。
2) 次版本号:保持相对兼容性,增加主要功能特性,影响范围极小的API不兼容修改。
3) 修订号:保持完全兼容性,修复BUG、新增次要功能特性等。
说明:注意起始版本号必须为:1.0.0,而不是0.0.1 正式发布的类库必须先去中央仓库进行查证,使版本号有延续性,正式版本号不允许覆盖升级。
如当前版本:1.3.3,那么下一个合理的版本号:1.3.4 或 1.4.0 或 2.0.0 - 【强制】线上应用不要依赖
SNAPSHOT
版本(安全包除外)。
说明:不依赖SNAPSHOT
版本是保证应用发布的幂等性。另外,也可以加快编译时的打包构建。 - 【强制】二方库的新增或升级,保持除功能点之外的其它jar包仲裁结果不变。如果有改变,
必须明确评估和验证,建议进行dependency:resolve
前后信息比对,如果仲裁结果完全不一致,那么通过dependency:tree
命令,找出差异点,进行<excludes>
排除jar包。 - 【强制】二方库里可以定义枚举类型,参数可以使用枚举类型,但是接口返回值不允许使用枚举类型或者包含枚举类型的POJO对象。
- 【强制】依赖于一个二方库群时,必须定义一个统一的版本变量,避免版本号不一致。
说明:依赖springframework-core,-context,-beans
,它们都是同一个版本,可以定义一个变量来保存版本:${spring.version}
,定义依赖的时候,引用该版本。 - 【强制】禁止在子项目的pom依赖中出现相同的GroupId,相同的ArtifactId,但是不同的
Version。
说明:在本地调试时会使用各子项目指定的版本号,但是合并成一个war,只能有一个版本号出现在最后的lib目录中。可能出现线下调试是正确的,发布到线上却出故障的问题。 - 【推荐】所有pom文件中的依赖声明放在
<dependencies>
语句块中,所有版本仲裁放在
<dependencyManagement>
语句块中。
说明:<dependencyManagement>
里只是声明版本,并不实现引入,因此子项目需要显式的声
明依赖,version
和scope
都读取自父pom
。而<dependencies>
所有声明在主pom的
<dependencies>
里的依赖都会自动引入,并默认被所有的子项目继承。 - 【推荐】二方库不要有配置项,最低限度不要再增加配置项。
- 【参考】为避免应用二方库的依赖冲突问题,二方库发布者应当遵循以下原则:
1) 精简可控原则。移除一切不必要的API和依赖,只包含 Service API、必要的领域模型对象、Utils类、常量、枚举等。如果依赖其它二方库,尽量是provided
引入,让二方库使用者去依赖具体版本号;无log具体实现,只依赖日志框架。
2) 稳定可追溯原则。每个版本的变化应该被记录,二方库由谁维护,源码在哪里,都需要能方便查到。除非用户主动升级版本,否则公共二方库的行为不应该发生变化。
Java开发手册之二方库依赖相关推荐
- 【Java】什么是二方库?
一.什么是二方库 作为开发,最常听说的还是第三方库,二方库这个说法叫的不多. 目前对于第一二三方库的理解大致如下 一方库:本工程范围内,各个模块和包之间的相互依赖 二方库:引入的同一个公司内部的其他工 ...
- 阿里巴巴Java开发手册认证考试题库
注 转载自:https://baijiahao.baidu.com/s?id=1688631517911751367&wfr=spider&for=pc 此文作用于自己刷题使用,答案在 ...
- 阿里巴巴 Java 开发手册之编程规约(一)-------我的经验
阿里巴巴 Java 开发手册 一.编程规约 (一) 命名规约 1.[强制] 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束.(代码规范,易读) 反例: _name / __na ...
- 白话阿里巴巴Java开发手册(编程规约)
本文欢迎转载,转载请注明原文链接,并附作者个人信息李艳鹏. 研发流程管理 最近,阿里巴巴发布了<阿里巴巴Java开发手册>,总结了阿里人多年一线实战中积累的研发流程规范,这些流程规范在一定 ...
- 熟读《阿里巴巴java开发手册》(六、工程结构,七、 设计规约,专有名词解释)
目录 六.工程结构 (一) 应用分层 (二) 二方库依赖 (三) 服务器 七. 设计规约 附 2: 专有名词解释 六.工程结构 (一) 应用分层 1. [推荐] 图中默认上层依赖于下层,箭头关系表示可 ...
- 常识之外的规范——阿里java开发手册笔记(全章节)
说明 这篇文章是我第一次(认真)阅读<阿里巴巴 Java 开发手册(终极版)>的笔记.手册本身对规范的讲解已经非常详细了,如果你已经有一定的开发经验并且有良好的编码习惯和意识,会发现大部分 ...
- Java开发手册——嵩山版(清幽现云山,虚静出内功)
终于找到了--阿里巴巴Java开发手册1.7.0(嵩山版) 前言 <Java 开发手册>是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一 线实战的检验及不断完善,公开到业 ...
- [转]白话阿里巴巴Java开发手册高级篇
不久前,阿里巴巴发布了<阿里巴巴Java开发手册>,总结了阿里巴巴内部实际项目开发过程中开发人员应该遵守的研发流程规范,这些流程规范在一定程度上能够保证最终的项目交付质量,通过在时间中总结 ...
- 为什么阿里巴巴Java开发手册中强制要求接口返回值不允许使用枚举?
在阅读<阿里巴巴Java开发手册>时,发现有一条关于二方库依赖中接口返回值不允许使用枚举类型的规约,具体内容如下: 在谈论为什么之前先来科普下什么是二方库,二方库也称作二方包,一般指公司内 ...
- 304902阿里巴巴Java开发手册1.4.0
转自官网 前言 <阿里巴巴Java开发手册>是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断完善,系统化地整理成册,回馈给广大开发者.现代软件行业的高速 ...
最新文章
- 使用属性position:fixed的时候如何才能让div居中
- 露天下的云端信标组比赛
- word2003的页码设置
- 菜单栏底部线条切换效果
- 华为2017.7.26机试
- Linux下清空回收站
- gdi作图与系统不兼容_技术作图:技能准备amp;物理装备
- 华为手机网络连接不可用怎么解决_和平精英卡顿怎么解决?玩手机游戏用什么加速器比较好?...
- 北京新东方全部托福资料
- 激光雷达与毫米波雷达的区别
- 2022年项目经理的发展方向-上课解读及心得
- Java判断日期在指定时间段中的第几周
- Python 的IDE——PyCharm
- Android 自定义View 绘制正N边形
- 红外控制LED灯的亮灭———Arduino
- linux服务器压缩日志定时脚本
- 按手机返回键APP直接退出问题
- 虚拟现实沉浸式体验 VR一体机推荐
- labview can通讯上位机,调用周立功库文件
- Firefox(火狐)浏览器扩展开发初探
热门文章
- PDFlib-6.0.3p1-Windows] license key 算法分析
- 不同时区时间换算_不同时区时间转换
- android so 瘦身,Android APK 瘦身实践
- 程序员如何向领导提涨薪加薪
- 系统—怎么关闭windows自带的安全中心
- 用Python实现辞职信
- 计算机上面的字体怎么应用,字魂字体怎么放PS里面用 应用到PS的方法
- 入门学习必收藏!精选Photoshop、D…
- 计算机函数sumif实例,「稻客说函数」SUMIF函数实例详解
- JQ show和hide(隐藏显示)、fadeIn和fadeOut(淡入淡出)、slideDown和slideUp(隐藏显示)