我使用springdatahadoop编写了一个hadoopmr作业,并使用mavenshade插件打包了所有必需的jar。但当我从科曼德那里得到这份工作时line:hadoop jar ,它给了我一个例外classnotfound for the spring beans。导致加载spring应用程序上下文时出现问题。在那之后,我使用maven汇编插件并将所有必需的jar打包到lib文件夹中。这次成功了。
我不明白为什么maven shade插件失败了。有人能帮我理解我的观察吗。
我使用springdatahadoop编写了一个hadoopmr作业,并使用mavenshade插件打包了所有必需的jar。但当我从科曼德那里得到这份工作时line:hadoop jar ,它给了我一个例外classnotfound for the spring beans。导致加载spring应用程序上下文时出现问题。在那之后,我使用maven汇编插件并将所有必需的jar打包到lib文件夹中。这次成功了。
我不明白为什么maven shade插件失败了。有人能帮我理解我的观察吗。
2条答案
按热度按时间7dl7o3gd1#
我不知道你是怎么使用shade插件的,但我想你可能会在使用诸如
META-INF/spring.handlers
以及META-INF/spring.schemas
在所有的Spring罐里都有相同的路径。llycmphe2#
从http://maven.apache.org/plugins/maven-shade-plugin/
这个插件提供了将工件打包到uberjar中的功能,包括它的依赖项,以及对某些依赖项的包进行着色(即重命名)。
我猜你的shade插件配置已经重命名了一些包,这样类文件就找不到了。