2015-02-10 52 views
0

我想通过为我的项目运行sb​​t程序集来制作一个胖罐子。 我收到以下错误:sbt程序集由于冲突的文件而失败

[error] (root/*:assembly) deduplicate: different file contents found in the following: 
[error] /Users/xyz/.ivy2/cache/org.apache.hadoop/hadoop-mapreduce-client-core/jars/hadoop-mapreduce-client-core-2.2.0.jar:org/apache/hadoop/filecache/DistributedCache.class 
[error] /Users/xyz/.ivy2/cache/org.apache.hadoop/hadoop-core/jars/hadoop-core-2.0.0-mr1-cdh4.7.1.jar:org/apache/hadoop/filecache/DistributedCache.class 

DistributedCache类Hadoop MapReduce的客户端核心已经被废弃了。 在我build.sbt我已经包括:

"org.apache.hadoop" % "hadoop-client" % "2.0.0-mr1-cdh4.7.1" excludeAll(
    ExclusionRule(organization = "javax.servlet")) 

的依赖关系是这样的:

org.apache.hadoop:hadoop-client:2.2.0 
org.apache.hadoop:hadoop-mapreduce-client-app:2.2.0 
    org.apache.hadoop:hadoop-mapreduce-client-core:2.2.0 

如何处理呢?

在此先感谢!

回答

0

,如果你打算当它是负担时,你靠Hadoop的客户端上删除MapReduce的客户端应用程序的相关性JAR:2.2.0,只需简单地添加不及物动词:

"org.apache.hadoop" % "hadoop-client" % "2.2.0" intransitive() 

这仅会包括hadoop-client:2.2.0 jar并排除所有的依赖关系。

相关问题