【问题标题】:How do you handle multiple versions of same jar?你如何处理同一个 jar 的多个版本?
【发布时间】:2013-04-11 07:36:18
【问题描述】:

我使用 Apache_Gora_0.2.1 和 Apache Nutch_2.1 。

  • Nutch 依赖于 Gora。

  • Gora 有 gora-core 和 gora-hbase 模块。

  • gora-hbase 依赖于 gora-core。

  • Gora 的所有模块都使用 avro_1.3.3.jar 。我想将 avro_1.3.3.jar 用于 gora-core,将 avro_1.5.3.jar 用于 gora-hbase。

  • 我通过 Maven 成功编译了 Gora,通过 Ant 和 Ivy 成功编译了 Nutch。

然后似乎是 Nutch 类路径中的两个版本(avro.1.3.3.jar 和 avro.1.5.3.jar)。如果我通过 ivy.xml 排除 avro_1.5.3.jar,gora-hbase 不要使用 avro.1.5.3。 我怎么解决这个问题?

【问题讨论】:

    标签: maven ant ivy


    【解决方案1】:

    当你在类路径中有不同版本的相同 jar 时,你应该避免这种情况。 要解决您的问题,您需要找到使用类似 avro 版本的 Apache_Gora_0.2.1 和 Apache Nutch_2.1 版本。 尝试使用 Apache Nutch_1.6,因为 Apache_Gora_0.2.1 是最新版本。 然后,您排除最低版本并解决您的问题。

    【讨论】:

    • 我应该试试 Apache Nutch_2.1。因为 Nutch_1.6 不支持 hbase。
    • 如果我的回答回答了你的问题,你可以接受并推广它:)
    【解决方案2】:

    另一种可能性是将 Nutch 降级到 2.0,因为这适用于 avro 1.3.3。 如果我没记错的话,gora-hbase 不适用于 avro 1.5.3,而是 1.3.3。

    同时告诉gora-hbase只使用avro来序列化值……为什么需要它来使用avro 1.5.3?

    【讨论】:

    猜你喜欢
    • 2015-01-24
    • 1970-01-01
    • 1970-01-01
    • 2017-01-29
    • 1970-01-01
    • 2021-12-23
    • 2020-05-19
    • 1970-01-01
    相关资源
    最近更新 更多