求知过程之maven包过滤

参考:

解释:就是说项目中要用到某一个a.jar包,通过maven引入了之后,也自动的导入了该jar包所依赖的包,这里就会存在一个问题,如果a.jar包依赖b.jar这个项目的1.0版本,可是我的项目中已经有b.jar这个项目2.0的版本了,这里就会造成冲突,解决的办法是去除a.jar包依赖b.jar这个项目的1.0版本的依赖关系,让项目使用我已有的包。

最近搭一个springmvc4.x的maven环境,由于要用到webserice,打算整合jersey做,在导入jersey-spring.jar时出现了这样的问题,我用的是jersey-spring1.81.jar版本,该项目依赖的是spring3,所以把jersey-spring1.81.jar加入maven或就出现了这样的情况,由于它依赖spring3.x,所以自动导入了spring3.x的jar,并把我spring4.x的包自动删除了,导致spring4.x根本无法构建,可是我已经有4.x的包,完全不需要它自动导入3的包删除4的包啊

解决版本:

去除jersey-spring1.81.jar原有的依赖,这样就不会自动去导spring3的包了,而是使用我已有的spring4的包,

同理,以后遇到类似的问题也可以这么解决,规则是在要导入的包中加一个去除原有依赖的标签,标签内写想去除的包的id和版本。

贴上解决代码

		<dependency>
			<groupId>com.sun.jersey.contribs</groupId>
			<artifactId>jersey-spring</artifactId>
			<version>1.18.1</version>
			<!-- 去除自带的spring版本 -->
            		<exclusions>
                		<exclusion>
                    			<groupId>org.springframework</groupId>
                    			<artifactId>spring-aop</artifactId>
                		</exclusion>
                		<exclusion>
                    			<groupId>org.springframework</groupId>
                    			<artifactId>spring-context</artifactId>
                		</exclusion>
                		......
            		</exclusions>
		</dependency>
项目遇到的日志包冲突:
		<dependency>
			<groupId>org.quartz-scheduler</groupId>
			<artifactId>quartz-jobs</artifactId>
			<version>${quartz.version}</version>
			<exclusions>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-api</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
个人调查方向完全错了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值