【问题标题】:commons-logging-api-1.1.jar vs. commons-logging-1.2.jarcommons-logging-api-1.1.jar 与 commons-logging-1.2.jar
【发布时间】:2017-02-17 12:21:23
【问题描述】:

我正在做一个非常简单的第 3 方库(在本例中为 solrj)的概念证明。

虽然我使用 maven 作为构建系统,但我得到了错误

java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory

因为 solrj (4.10.4) 没有将其定义为依赖项。

因此,我现在可以手动将公共日志记录添加为 maven 依赖项,但我不确定要添加哪个:

  • commons-logging-api-1.1.jar
  • 或commons-logging-1.2.jar

程序运行成功,无论我添加哪两个。

我的问题:

  • 这两个文件有什么区别?
  • 为什么 1.2 版中没有 commons-logging-api?

【问题讨论】:

    标签: java apache-commons-logging


    【解决方案1】:

    commons-logging-api 只是代码(在本例中为 Solr)编译到的一组接口,没有“锁定”到任何特定的日志记录实现。自 1.1 以来,它不太可能完全改变,因此它的 maven 向量在 1.1 中保持不变。但无论如何它都包含在 1.2 捆绑包中,因此您不需要它。您只需要:

    • commons-logging:commons-logging:1.2

    有可能(很可能)您的项目中的一些其他依赖项也依赖于 commons-logging,因此 maven 会选择它,并且您会发现该项目以任何方式工作。你可以看到它使用的依赖层次结构:

    mvn dependency:tree
    

    您还可以配置 commons-logging 以使用替代的底层日志系统实现,例如。日志4J。值得阅读 commons-logging user guide 以了解它的工作原理以及如何根据您的要求对其进行调整。

    【讨论】:

      猜你喜欢
      • 2011-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-13
      • 2011-08-24
      • 2012-04-08
      • 1970-01-01
      • 2015-03-29
      相关资源
      最近更新 更多