Java 如何排除hadoop核心依赖项
我将我的hadoop依赖项从1.1.1升级到了0.2.0 hadoop 我的问题是: 我的mapreduce项目依赖于jersey,hadoop 0.2.0核心依赖于jersey的旧版本。 因此,我的mapreduce类中的一个方法导致“java.lang.NoSuchMethodError:javax.ws.rs.core.MultivaluedMap.addAll” 作为解决方案: 在pom文件中,我将jersey从hadoop依赖项中排除,但这仍然没有解决总体问题Java 如何排除hadoop核心依赖项,java,rest,maven,hadoop,Java,Rest,Maven,Hadoop,我将我的hadoop依赖项从1.1.1升级到了0.2.0 hadoop 我的问题是: 我的mapreduce项目依赖于jersey,hadoop 0.2.0核心依赖于jersey的旧版本。 因此,我的mapreduce类中的一个方法导致“java.lang.NoSuchMethodError:javax.ws.rs.core.MultivaluedMap.addAll” 作为解决方案: 在pom文件中,我将jersey从hadoop依赖项中排除,但这仍然没有解决总体问题 当我尝试以java的形式
当我尝试以java的形式运行一个函数(过去会导致错误)的类时,现在它可以工作了。然而,当我尝试用hadoop命令运行它时,它总是给我同样的错误 我认为您所要求的是不可能的,除非您能够以某种方式分离类加载器。基本上,您要求拥有相同.class的版本。当您运行hadoop命令时,需要考虑类路径,作为一种黑客行为,您可以更改类路径中库的顺序以优先于类路径。在构建时,您的类路径上可能仍然有多个版本的库。我在eclipse dependency viewer和maven dependency tree中看到过,它们没有显示依赖关系,但是当您打包工件时,您会注意到lib目录中有多个版本。这些错误几乎总是由类路径上的同一类的多个版本引起的。您能用mvn dependency:tree的输出更新这个问题吗