你如何处理同一个jar的多个版本?

时间:2013-04-18 09:05:05

标签: maven ant ivy

我使用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。我想对gora-core使用avro_1.3.3.jar,为gora-hbase使用avro_1.5.3.jar。

  • 我通过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。 我怎么解决这个问题?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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