一、背景
在开发项目时依赖了新的jar包,结果工程启动时报错了,此时应该是包依赖冲突的问题。
二、确定冲突的依赖包
执行mvn clean install,通过报错信息来确定冲突的jar包信息
三、排除冲突包的方案
有两种冲突的情况:
1)新jar包和工程中老jar包的冲突
2)新jar包内部子jar包之间存在冲突
1、新老jar包冲突排除
whale-dao是加入前已在使用的jar包,ali-langengine-xx是后加入的jar包,现在需要排除ali-langengine-xx中冲突的jar包。
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>ali-langengine-vectorstore</artifactId>
<version>1.0.10-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
</exclusion>
</exclusions>
</dependency>
2、新jar包内部子jar包之间冲突排除
此时的解法是:ali-language-core中排除掉冲突包,然后在外部再新加一个依赖包。
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.2</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>ali-langengine-core</artifactId>
<version>1.0.10-RELEASE</version>
<exclusions>
<exclusion>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
</exclusion>
</exclusions>
</dependency>