当前位置: 首页 > news >正文

马来西亚网站后缀建设旅游网站的好处

马来西亚网站后缀,建设旅游网站的好处,自己建立网站后怎么做淘客,威海住房和城乡建设局网站首页背景 我们在依赖第三方JAR时,同时也会间接的依赖第三方JAR引用的依赖,而当我们项目中某个依赖的版本与第三方JAR依赖的版本不一致时,可能会导致第三方JAR的在运行时无法找到某些方法或类,从而无法正常使用。 如我正在开发的一个…

背景

我们在依赖第三方JAR时,同时也会间接的依赖第三方JAR引用的依赖,而当我们项目中某个依赖的版本与第三方JAR依赖的版本不一致时,可能会导致第三方JAR的在运行时无法找到某些方法或类,从而无法正常使用。

如我正在开发的一个sdk.jar,其中会使用OpenFeign来进行HTTP通信,现在的项目一般来说都是通过依赖 spring-cloud-openfeign-core,并标注 @FeignClient 注解来实现,但是此项目却不能依赖 spring-cloud-openfeign-core。原因是我们公司有大量的老项目,使用的Spring版本比较老如Spring4,或是有的项目并没有使用Spring Boot。所以在设计之初时,为了兼容老项目,并且尽可能轻量,就设计成了sdk.jar不去依赖Spring Boot以及Spring Cloud,所以只能使用更加底层的io.github.openfeign:feign-core通过Feign.Builder创建各FeignClient。

其中如果要让Feign识别SpringMVC的各种注解,需要为其指定Contract,使用 spring-cloud-openfeign-core 时可以指定 SpringMvcContract,而使用 io.github.openfeign:feign-core 则需要指定 SpringContract,该类是在 io.github.openfeign:feign-spring4 中定义的。

一切看似正常,直到有一个项目使用sdk后在发起HTTP请求时抛出异常

Caused by: java.lang.NoClassDefFoundError: feign/DeclarativeContractat java.lang.ClassLoader.defineClass1(Native Method) ~[na:1.8.0_202]at java.lang.ClassLoader.defineClass(ClassLoader.java:763) ~[na:1.8.0_202]at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 

检查了下,该类是 SpringContract继承的父类。我们sdk.jar中openfeign版本是10.12,而对方项目中本身依赖了 spring-cloud-openfeign-core:2.1.2.RELEASE,对应io.github.openfeign:feign-core的版本为10.2.3,而该版本下确实没有DeclarativeContract类的。

知道问题的所在,那么就需要让对方升级openfeign的版本,并且在我们的用户手册兼容性章节下做出说明,那么到底是从什么版本开始有这个类的呢。如果按照合规性来说,每个新类或新方法的出现应该标注@since注解的,好告知使用者是从什么版本开始新增的,比如

/*** @author beemo* @since 1.2.0*/
public class Test {
}

但是实际上标注的是少数,包括openfeign,所以并不能直接是从什么版本开始新增的。

这时候就需要通过查询网站进行查询了。

实践

search.maven.org

https://search.maven.org/icon-default.png?t=N7T8https://search.maven.org/该网站是官方搜索网站,可以根据坐标、根据类或者根据checksum进行搜索,搜索格式如下

如在文章中最开始的例子中,我想搜索 DeclarativeContract 是从哪个版本中出现的,就可以在搜索框中输入如下搜索条件

 

可以看到,搜索结果有516条,翻页后发现有其他的jar中也包含同样的类,所以我们还需要再过滤一下,根据搜索格式说明增加过滤条件:

这次搜索只搜出了34条,这下我们可以回答前文的问题了,那就是至少升级到10.5.0版本才可以正常使用。


central.sonatype.com

Maven CentralOfficial search by the maintainers of Maven Central Repository.icon-default.png?t=N7T8https://central.sonatype.com/此网站同样是官方的网站,并且界面更好看,搜索条件也更丰富,查询方式略有不同,如下所示

总结

借助上述的网站,我们可以既可以搜索某个类是在什么版本出现的,也可以当程序执行报ClassNotFound等异常时,搜索缺失的依赖是什么,还是比较方便的。

http://www.yayakq.cn/news/643701/

相关文章:

  • 深圳英文网站建设专业公司产品管理系统软件
  • 小程序注册的账号是做360手机网站优化快
  • 网站seo如何做外网怎么进入
  • 城乡建设部网站甘红刚做音乐分享的网站
  • 做一个公司网站要多少钱网站建设指导思想
  • 有哪些网站平台七牛wordpress插件
  • 中国桥梁建设网站怎么做网络推广
  • 网站优化的监测评价简述建设一个网站的具体过程
  • 网站域名备案需要多长时间湖南营销型网站建设团队
  • 哪里有网站推广软件企业培训机构网站源码
  • 个人网站怎么做支付wordpress 顶部工具条
  • 江门网站建设wordpress误删插件
  • 网推平台有哪些天津百度seo排名优化软件
  • 那些网站可以做自媒体网站收录批量查询
  • 为什么不能自己做网站注册公司代理找哪家
  • 网站首页自动下拉广告网站带后台免费下载
  • 搭建网站论坛怎么可以上传自己做的网站
  • 河南建设监理协会网站app界面设计常用的布局有哪些
  • jsp 做网站还是php网赌赢了钱被网站黑了需要怎么做
  • 审计实务网站建设论文网站建设和风险评估
  • 故乡网站开发的意义推广工具
  • 攀枝花网站怎么做seowordpress插件ERP
  • 兰州免费网站建设企业搭建什么样的平台
  • 给别人做网站用做假酒验证wordpress外网打开慢
  • 怎么做网站 先简单的聊一下张雪峰不建议报的计算机
  • 服装网站建设课程做网站主要步骤
  • 平湖公司网站建设wordpress 置顶插件
  • 怎么自建设部网站查询公司资质16种营销模式
  • 做笑话网站wordpress 判断置顶
  • 做网站去哪里接单网站建设用什么软件有哪些