【问题标题】:maven-shade-plugin vs maven-assembly-pluginmaven-shade-plugin vs maven-assembly-plugin
【发布时间】:2014-09-05 02:12:35
【问题描述】:

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

我不明白为什么 maven-shade-plugin 会失败。谁能帮我理解我的观察。

【问题讨论】:

    标签: hadoop maven-assembly-plugin classnotfound maven-shade-plugin spring-data-hadoop


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      我不知道你是如何使用阴影插件的,但我认为你可能会遇到像 META-INF/spring.handlersMETA-INF/spring.schemas 这样在所有 spring jar 中具有相同路径的元信息的问题。

      【讨论】:

        猜你喜欢
        • 2013-02-19
        • 1970-01-01
        • 2019-03-04
        • 2012-03-25
        • 1970-01-01
        • 2013-08-19
        • 2017-09-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多