我让some trouble运行Hadoop作业,其中包括比Hadoop发行版(CDH 5.2)中包含的版本更高的Guava版本。这是一个已知的问题。我尝试使用Maven阴影插件解决by shading the libraries。因此,我在pom.xml
中添加了以下几行:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<relocations>
<relocation>
<pattern>com.google</pattern>
<shadedPattern>thirdparty.com.google</shadedPattern>
</relocation>
</relocations>
</configuration>
</execution>
</executions>
</plugin>
不幸的是,阴影似乎不起作用。当我提取uber-JAR时,没有文件夹
thirdparty/com/google
,但仍然有文件夹com/google
。有人知道出什么问题了吗?
最佳答案
这为我工作:
<relocations>
<relocation>
<pattern>com.google.</pattern>
<shadedPattern>thirdparty.com.google.</shadedPattern>
</relocation>
</relocations>
注意图案结尾处的点。