maven中排除冲突包遇到的坑

项目启动时一开始报了以下错误
Caused by: java.lang.RuntimeException: java.io.IOException: invalid constant type: 18
	at javassist.CtClassType.getClassFile2(CtClassType.java:203)
	at javassist.CtClassType.subtypeOf(CtClassType.java:303)
	at javassist.CtClassType.subtypeOf(CtClassType.java:318)
	at javassist.compiler.MemberResolver.compareSignature(MemberResolver.java:247)

该错误根据百度,是javassit包引起的问题,将项目中所有的assist包都做了排除,仅留下3.19.0-GA版本(某个重要的依赖要求必须是这个版本)。

但神奇的是本地打包,没有问题,lib目录下就是3.19.0-GA版本这一个包。

然而在公司的集成平台打包,lib下出现3.19.0-GA和3.12.1-GA两个版本的包。

再次检查所有在pom中的依赖,并无脑全部加排除assist包,问题依然没有解决。

再次检查所有依赖包,pom中有dependencies和dependencyManagement两个节点,management中加入的一些包在dependencies中不存在,遂将这些包都做到两个节点一致,然后对dependencies中的所有依赖排除assist包,问题终于解决!

最终排查出,是resteasy-jaxrs中依赖了3.12.1-GA版本,如下即可



    org.jboss.resteasy
    resteasy-jaxrs
    2.2.1.GA
    
        
            org.javassist
            javassist
        
        
            scannotation
            org.scannotation
        
    

你可能感兴趣的:(maven,java)