4

我使用 spring-data-hadoop 编写了一个 hadoop MR 作业,并使用 maven-shade-plugin 来打包所有必要的 jar。但是当我从命令行运行工作时:hadoop jar,它给了我 Spring-bean 的 ClassNotFound 异常。导致加载 spring 应用程序上下文的问题。在我使用 maven-assembly-plugin 并将所有需要的 jar 打包到 lib 文件夹中之后。这次奏效了。

我不明白为什么 maven-shade-plugin 会失败。有人可以帮助我理解我的观察。

4

2 回答 2

1

我不知道您是如何使用阴影插件的,但我假设您可能会遇到元信息之类的问题META-INF/spring.handlers,并且META-INF/spring.schemas在所有 spring jar 中都有相同的路径。

于 2014-07-18T12:26:44.520 回答
1

来自http://maven.apache.org/plugins/maven-shade-plugin/

这个插件提供了将工件打包到 uber-jar 中的能力,包括它的依赖项和遮蔽 - 即重命名 - 一些依赖项的包。

我猜你对 shade 插件的配置已经重命名了一些包,这样类文件就再也找不到了。

于 2015-01-30T19:22:39.700 回答