jar包中的依赖jar版本冲突

背景,项目中之前引入了一个 图片上传的jar

<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>

后来由于需要,新引入了

<dependency>
       <groupId>net.sourceforge.htmlunit</groupId>
       <artifactId>htmlunit</artifactId>
       <version>2.35.0</version>
</dependency>

结果使用的时候就报错了,报的是common-io jar某个方法的错

后来百度后,晓得是因为上面的两个jar文件中都依赖 common-io jar 两个版本不一样,后面的需要的是2.6版本的,前面引入的是2.2版本,并且覆盖了2.6,导致凉凉

解决方法:将io从低版本移除

<dependency>
         <groupId>commons-fileupload</groupId>
         <artifactId>commons-fileupload</artifactId>
         <version>1.4</version>
         <exclusions>
             <exclusion>
                 <groupId>commons-io</groupId>
                 <artifactId>commons-io</artifactId>
             </exclusion>
         </exclusions>
 </dependency>

原文地址:https://www.cnblogs.com/zhaiyt/p/11211733.html

时间: 2024-10-23 03:17:33

jar包中的依赖jar版本冲突的相关文章

java如何在项目依赖的jar包中查找冲突的类

原文:java如何在项目依赖的jar包中查找冲突的类 源代码下载地址:http://www.zuidaima.com/share/1785617759915008.htm package com.whaty.util; import java.util.*; import java.io.*; public class JarClassFind { public static int count = 0; static public void main(String[] args) { /* *

spring中各jar功能及jar包之间的依赖关系

(1) spring-core.jar 这个jar文件包含Spring框架基本的核心工具类,Spring其它组件要都要使用到这个包里的类,是其它组件的基本核心,当然你也可以在自己的应用系统中使用这些工具类. (2) spring-beans.jar 这个jar文件是所有应用都要用到的,它包含访问配置文件.创建和管理bean以及进行Inversion of Control / Dependency Injection(IoC/DI)操作相关的所有类.如果应用只需基本的IoC/DI支持,引入spri

换了应用部署环境,读取jar包中文件遇到的问题。

程序换了个tomcat部署出现了问题,在原来的系统里好好的.最后定位问题发现是使用dom4j读取jar包中文件出现的问题,dom4j的异常是:org.dom4j.DocumentException: null Nested exception: null,经过观察发现拿到的InputStream对象为空.再追代码发现是因为JarFile压根就没有读到文件.顺手换成了当前线程上下文去读取文件,这次抛出的异常很清楚,jar文件找不到.最近经过观察发现是引文文件路径中存在空格,这是和原来系统不同的地方

Spring各jar包作用及依赖

先附spring各版本jar包下载链接http://repo.spring.io/release/org/springframework/spring/ spring.jar 是包含有完整发布模块的单个jar 包.但是不包括mock.jar, aspects.jar, spring-portlet.jar, and spring-hibernate2.jar 示例图片为Spring-2.5.6.jar的包目录 下面讲解各个jar包的作用: 1.org.springframework.aop或sp

JAR包中的MANIFEST.MF文件详解以及编写规范

参考百度百科的解释如下: MANIFEST.MF:这个 manifest 文件定义了与扩展和包相关的数据.单词“manifest”的意思是“显示” 打开Java的JAR文件我们经常可以看到文件中包含着一个META-INF目录,这个目录下会有一些文件,其中必有一个MANIFEST.MF,这个文件描述了该Jar文件的很多信息,下面将详细介绍MANIFEST.MF文件的内容,先来看struts.jar中包含的MANIFEST.MF文件内容: Manifest-Version: 1.0 Created-

【Maven学习】Maven打包生成普通jar包、可运行jar包、包含所有依赖的jar包

http://blog.csdn.net/u013177446/article/details/54134394 ****************************************************** 使用maven构建工具可以将工程打包生成普通的jar包.可运行的jar包,也可以将所有依赖一起打包生成jar: 一.普通的jar包 普通的jar包只包含工程源码编译出的class文件以及资源文件,而不包含任何依赖:同时还包括pom文件,说明该包的依赖信息: 在工程pom文件下

判断一个类到底是从哪个jar包中调用的工具类

项目中使用的jar包较多时,会出现jar冲突的情况,有时候很难判断当前使用的这个类是从哪个jar包中调用的.因为一般我们只能看到jar包的名称,不清楚其中的类的目录结构. 这个类的作用就是说明当前调用的类来自于哪个jar包. import java.io.File; import java.net.MalformedURLException; import java.net.URL; import java.security.CodeSource; import java.security.Pr

J2EE CDI beans部署在独立的jar包中

本篇博客主要介绍,CDI开发中,将所有的CDI Bean打包到一个jar包中,如何解决org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [...] with qualifiers [@...] at injection point ... 异常. 介绍 在CDI项目中beans.xml的一个主要作用就是告诉容器我们所开发的CDI存在的位置,保证容器能够扫描到这些

创建Jmeter中使用的jar包中的工具类方法

1. 在IDEA中新建一个maven工程. 2. 编写工具类方法,如加密算法.此处以加法为例. package DemoTest; public class DemoClass{ public int add(int a, int b){ return a+b; } } 3. 在maven中配置将依赖包打包至某固定位置. <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</grou