【问题标题】:Simple and Elegant Way to Include Libraries / Jar Files包含库/Jar 文件的简单而优雅的方式
【发布时间】:2015-10-20 00:54:46
【问题描述】:

我的问题类似这样的问题:
Storm command fails with NoClassDefFoundError after adding jsoup as provided dependency

但我想知道最新的解决方案和更好的方法来解决这个问题。

我将在风暴用户邮件列表中发布相同的描述:
大家好,

我正在使用大量库构建拓扑,例如 spring、geotools 等。现在,我使用 maven 提取每个 jar 文件并将其打包到一个 jar 中(如许多论坛所建议的那样)。这里的问题是,每个 jar 有时都有冲突的文件,所以我必须手动合并。另一件事,虽然我将我的库打包在 jar 中,storm 首先加载它的库。比如我用的是 guava 16,storm 用的是 guava 13。我的程序不能运行,因为加载的是 guava 13。

当前的解决方案是我更改 clojure 脚本,将我的 jar 放在类路径中,然后放在其他 jar 之前。或者,我将我的 jars 放在 lib/ 目录中。

有没有简单可靠的方法在 Storm 中包含 jar?抱歉,如果这封电子邮件太长。我想澄清一下。

【问题讨论】:

    标签: apache-storm


    【解决方案1】:

    您可以使用 maven-shade-plugin 代替 maven-assembly-plugin 来构建您的 uber-jar。然后,使用relocation feature 将类移动到不同的包中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多