1.
对于重复类的问题依然不太明确记得当时上课的时候说过一些,但是不太记得了,是否是这样?如下:当我们有两个不同的jar包 test-1.0.jar test-2.0.jar, 而这两个jar包定义了相同的全限定类,并且两个jar同时存在与classpath时,jvm在使用哪个jar包的同名类上是不确定的,可能因不同的JVM而异,例如会使用先加载的那个jar包而这样造成的问题就是不确定性,有可能test-1.0里的类与test-2.0里的同名类存在不兼容的问题,例如类内的方法可能实现已经不一样了而我们在实现项目的时候实际上也有重复类的现象,例如qsso和jcl-over-slf4j的jar,而当时我们并未去做重复类的exclude工作,项目也能正常运行,这是因为这里两个jar里的common-logging正好没有兼容性问题所以我们为了排除这种潜在的有可能存在的兼容性问题,需要使用enforcer去查找这些重复类并在pom里面exclude掉.这样分析是否正确?
2.
在super pom里看到下面的规则<bannedDependencies><searchTransitive>true</searchTransitive><excludes><exclude>commons-logging</exclude><exclude>org.slf4j:*:(,1.6)</exclude></excludes></bannedDependencies>1. 如果说pom里同时引了 qsso 和 jcl-over-slf4j 的包, enforcer 会报 commons-logging 重复的error2. 将qsso的commons-logging exclude掉, enforcer不再报错问题 :1. <exclude>org.slf4j:*:(,1.6)</exclude> 不是说明 org.slf4j 这个groupId 自己也已经被ban了么,为什么没有报 banned dependency 的error 呢2. 既然会报重复类, 说明 slf4j 也依赖了 commons-logging, 为什么 tree:dependency 输出里看不到 slf4j 对 commons-logging 的依赖 呢3. 既然slf4j包含commons-logging, 为什么它不会被报 bannedDependencies error 呢
3.
你的意思是你觉得bannedDependencies 它 ban 的是groupId和artifactId, 而不是这个groupId artifactId 对应的jar 里面的package.class 这个类是这意思么似乎有点道理另外,我打开了qsso的jar包,看了他的pom, 里面并没有 commons-logging 这个 dependency, 不知为何在 dependency:tree 里会显示他对 commons-logging 有依赖?
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· Open-Sora 2.0 重磅开源!
2012-08-29 MySQL数据库索引简记