问题场景:A项目引入了B项目,引入依赖时没有摒弃一些冲突包导致启动A项目失败。

解决办法:报错处was loaded by前面的类(我这里是IronManager),定位到对应的包(可能会出现在两个包里,一个是项目A的,一个是项目B的;也可能只是一个项目B的),根据自己的业务摒弃其中一个,像我的只是A项目需要引入B项目的一些类和功能,所以直接摒弃项目B的就行了,(如果不确定是哪个项目的包,可以复制对应的类到另一个项目搜索)。

依赖中使用exclusions摒弃不想要引入的包

<dependency>
    <groupId>com.xxx.Bxxx</groupId>
    <artifactId>xxx</artifactId>
    <version>1.0.0-SHAPSHOT</version>
    <exclusions>
         <exclusion>
             <groupId>com.taobao.pandora</groupId>
             <artifactId>*</artifactId>
         </exclusion>
         <exclusion>
             <groupId>com.alibaba</groupId>
             <artifactId>xxxx</artifactId>
         </exclusion>
         <exclusion>
             <groupId>com.alibaba.middleware</groupId>
             <artifactId>*</artifactId>
         </exclusion>
    </exclusions>
</dependency>

 

解决问题参考文章:http://t.zoukankan.com/jiliunyongjin-p-14019460.html

 

关于exclusions和optional的参考文章:https://blog.csdn.net/u010287873/article/details/82012868?spm=1001.2101.3001.6650.7&utm_medium=distribute.wap_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-7.wap_blog_relevant_pic&depth_1-utm_source=distribute.wap_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-7.wap_blog_relevant_pic