Dependency Mediator轻量级兼容性依赖仲裁组件

联合创作 · 2023-09-28 16:48

Dependency Mediator,与Karaf 和其他轻量级模块化技术(类似 osgi,类名不需要是唯一的,但是类名组合和他们定义的 ClassLoader 必须是唯一的)不同,Dependency Mediator 尝试在编译期诊断组件依赖冲突问题,而不是使用自定义的 ClassLoader 来保持不同版本组件的一致性,因此可以有效避免一些臭名昭著的运行期兼容性错误,例如  NoSuchMethodError,NoSuchFieldError 和 NoClassDefFoundError 等等。

特性

  • 兼容 Maven 3.x.x 插件可编程模块

  • 兼容 JDK 6+

  • 支持直接扫描,包括 classpath

  • 支持组件扫描,包括 jar,war,ear,sar 等等

  • 支持冲突类扫描,冲突意味着相同的完全限定类名,而不是相同的数据或者不兼容的类(details see jls and class compatibility)

使用

Output component reactor info......
Conflicting component  [com.alibaba.rocketmq.storm.MessageConsumerManager] was founded in the  path : 
    /home/von/workspace/rocketmq-storm/dd/rocketmq-storm-1.0.0-SNAPSHOT-11/com/alibaba/rocketmq/storm/MessageConsumerManager.class
    /home/von/workspace/rocketmq-storm/dd/rocketmq-storm-1.0.0-SNAPSHOT.jar:com/alibaba/rocketmq/storm/MessageConsumerManager.class
Conflicting component  [com.alibaba.rocketmq.storm.MessageConsumer] was founded in the  path : 
    /home/von/workspace/rocketmq-storm/dd/rocketmq-storm-1.0.0-SNAPSHOT-11/com/alibaba/rocketmq/storm/MessageConsumer.class
    /home/von/workspace/rocketmq-storm/dd/rocketmq-storm-1.0.0-SNAPSHOT/com/alibaba/rocketmq/storm/MessageConsumer.class


浏览 7
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报