本文主要是介绍Java工程maven中排包exclude的操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、背景
在开发项目时依赖了新的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>
这篇关于Java工程maven中排包exclude的操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!