【问题标题】:how to import/export jars with included old version external jars?如何导入/导出包含旧版本外部 jar 的 jar?
【发布时间】:2015-02-23 22:49:59
【问题描述】:

我有项目“A”,其中包括 log4j.jar(log4j 版本 1.2)。 我将此项目“A”导出为A.jar

当某人有 log4J 更新版本 (1.2.17) 并导入我的 A 项目 (import A.jar) 时,他得到 class not found 错误(因为 log4j 版本不同)

有没有办法解决这个问题,而无需创建新版本的A.jar(使用更新的 log4j jar)?

【问题讨论】:

标签: java log4j


【解决方案1】:

听起来您遇到了一个经典的依赖管理问题。

长期的解决方案是使用为此设计的构建工具 - 在 Java 中,最好的起点可能是 Maven,但也可以将 Ivy 视为更单一用途的工具。

您可以指定所依赖的库版本(以及何时,在您的构建/运行时生命周期中),并在必要时从全局存储库中获取它们。

【讨论】:

  • 谢谢。所以我将使用 maven 来构建 A.jar,其他人(使用我的 A.jar)是否也需要使用 maven?
  • 理想情况下两者都可以。您希望您的构建指定它需要log4j,而不是直接捆绑。然后其他项目可以直接拉取你的 JAR,或者如果他们使用 Maven,它会从 POM 中知道它需要 log4j,因此他们可以指定在 他们的 项目中包含(或排除)哪些版本整理类未找到的错误。
猜你喜欢
  • 2021-09-18
  • 2013-09-21
  • 2020-06-29
  • 2011-05-24
  • 2017-04-07
  • 2013-04-14
  • 2014-09-03
  • 2013-05-22
  • 2011-04-02
相关资源
最近更新 更多