news 2026/6/10 16:29:04

maven依赖碎碎念:实际公司里的一些做法或坑

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
maven依赖碎碎念:实际公司里的一些做法或坑

maven依赖碎碎念:实际公司里的一些做法或坑

在一些小点的公司,或者是没那么复杂的项目里头,要么没有公司的maven私仓,要么即使有,整体的maven管理也会简单一些的。比如:

下面是典型的微服务/springboot的项目结构:a或b是parent project,其下有一些子模块继承parent,父模块也通过 引入各个子模块,子模块之间可以有依赖,如common都被各个子模块依赖,其他子模块之间也可以存在依赖

a-project common a1 a2 a3 b-project common b1 b2 b3

一般在这种小公司里,两个project,a和b毫无关系,不产生依赖。

以a为例,在a里头,同一个project里头的互相依赖都是不需要mvn install就可以及时得到更新反馈的:比如说a1依赖common,在common里添加一个新方法,在a1里立即就能用,并不需要common子模块先install,这应该是IDE带来的好处,允许自己local maven 仓库 “没货”

project外的依赖就得自己local maven仓库 “有货” 了,要么就通过下载,要么就得本地执行mvn install到本地仓库里。

比如此时公司有个 company-common 是公司级别的公共依赖,a-project 和 b-project 都引用。若 company-common 有变动,要么:

  1. 下载 company-common 自己切换到合适的分支,然后mvn install,让本地仓库 “有货”
  2. 要么别人已经推送到公司私仓了,从私仓下载 (如果不是用SNAPSHOT版本的话需要修改 a 或 b 里头依赖的 company-common 的版本

为什么这里头第1种方法这么坑

有时候依赖关系比较复杂,在a编译报错的时候,你不一定能想到是 company-common 这个依赖需要更新,比如编译a的过程发现com.foo.bar.common.test.Foo这个类缺少,可能依赖关系不复杂的时候可以从common的包名联想到 company-common 这个依赖,一旦没这些经验,靠着包名你怎么知道这个类是在哪个jar包里呢?况且知道哪个jar(GAV)的时候害得去反推是直接还是间接引入。

你可能根深蒂固:凭什么需要我下载当前项目外的依赖到本地进行install,这一般人都只会想到我从公司私仓下载肯定会有,如果没有那就是有人没上传上去。

为什么有时候依赖关系会这么庞大和复杂呢?

a 项目里本身就有很多子模块,每个子模块之间可能存在依赖,子模块再去意外外部的依赖,另外被依赖的外部的也不一定是一个整体,比如 company-common 里头也可以有很多模块,不一定就整个被依赖。我们这里也只是举例了一个 company-common,如果更多类似 company-common 的时候呢?

依赖深度也可能非常深,可能 company-common 并不是在第一层,可能是间接甚至隔了好几层才被引入。

实际项目因为历史原因可能累积的屎山代码导致依赖关系_真的很复杂!!!_

maven里的SNAPSHOT和RELEASE版本,在实际中用的多吗?

大公司用得不多,SNAPSHOT 好处当然是当被依赖的jar可以随时改,依赖这个jar的项目不需要改依赖的版本号。大公司里一般都是固定的版本号,比如 X.Y.Z 或者 v1.17.9 之类的,或者是编译后会带个时间戳,比如 v1.17.9-20260101154134666 之类的。引用者可以写死引用的版本,比如<version>v1.17.9-20260101154134666</version>或者使用版本区间的写法如<version>[1.0.0,19.0.0]</version>

暂时写到这,后续有补充再说

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 15:15:24

【紧急更新】Dify官方未公开的DeepSeek-V3适配补丁(v3.2.1-hotfix)已内部灰度发布,仅限前500名私有化部署团队获取

第一章&#xff1a;Dify私有化部署DeepSeek-V3的背景与意义 随着大模型应用从实验探索迈向生产落地&#xff0c;企业对数据主权、推理可控性与业务合规性的要求日益严苛。公有云API调用虽便捷&#xff0c;但存在敏感数据外泄风险、网络延迟不可控、模型版本迭代被动依赖第三方等…

作者头像 李华
网站建设 2026/6/10 15:58:37

cv_unet_image-matting适合新手吗?零基础入门实操体验

cv_unet_image-matting适合新手吗&#xff1f;零基础入门实操体验 1. 这个工具真的适合零基础用户吗&#xff1f; 你是不是也遇到过这种情况&#xff1a;想给人像换背景&#xff0c;但PS太复杂&#xff0c;手动抠图费时又不精准&#xff1f;最近我试了一款叫 cv_unet_image-m…

作者头像 李华
网站建设 2026/6/10 12:36:48

【专家级配置方案】:基于Dify的智能重试策略抵御API超时风暴

第一章&#xff1a;智能重试机制在API稳定性中的核心价值 在分布式系统中&#xff0c;网络抖动、服务瞬时过载或下游依赖短暂不可用等非确定性故障频繁发生。传统固定间隔重试&#xff08;如“失败后立即重试3次”&#xff09;不仅无法适配动态故障特征&#xff0c;还可能加剧雪…

作者头像 李华
网站建设 2026/6/9 21:13:39

GPEN批量处理卡顿?GPU算力适配优化部署案例让效率翻倍

GPEN批量处理卡顿&#xff1f;GPU算力适配优化部署案例让效率翻倍 你是不是也遇到过这种情况&#xff1a;用GPEN做图像肖像增强时&#xff0c;单张处理还能接受&#xff0c;一到批量处理就卡得不行&#xff0c;进度条走一步停三秒&#xff0c;等得人直挠头&#xff1f;尤其是老…

作者头像 李华
网站建设 2026/6/10 13:30:47

Excel函数从入门到精通完全导航目录(第一到第九章)

第一章 Excel函数基础 1、Excel函数入门完全指南&#xff1a;从零开始掌握数据分析核心技能 2、Excel公式三大运算符全解析&#xff1a;数学计算、逻辑判断与文本连接实战指南 3、Excel公式不再神秘&#xff1a;用F9键和公式求值功能&#xff0c;像侦探一样解剖运算过程 4、Ex…

作者头像 李华
网站建设 2026/6/10 13:31:22

dify知识库构建失败?必须掌握的4种段落切分优化技巧

第一章&#xff1a;dify知识库索引失败提示段落过长解决方法 当在 Dify 中上传长文档&#xff08;如 PDF、Word 或大文本文件&#xff09;并启用向量化索引时&#xff0c;系统可能报错&#xff1a;“段落过长&#xff0c;超出最大 token 限制”&#xff0c;导致知识库构建失败。…

作者头像 李华