当前位置: 首页 > 知识库问答 >
问题:

commons-logging-api-1.1。jar与commons-logging-1.2。罐子

邹开畅
2023-03-14

我正在做一个非常简单的第三方库概念验证(在本例中,是solrj)。

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

java.lang.NoClassDefFoundError: org/apache/共用/日志/LogFactory

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

因此,我现在可以手动添加commons日志作为maven依赖项,但我不确定要添加哪一个:

  • commons-logging-api-1.1。罐子
  • 或commons-logging-1.2。罐子

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

我的问题是:

  • 这两个文件之间有什么区别
  • 为什么commons日志api在1.2版中不存在

共有1个答案

秋和雅
2023-03-14

commons logging api只是编译代码(本例中为Solr)的一组接口,没有“锁定”到任何特定的日志实现。自1.1以来,它不太可能发生任何变化,因此它的maven向量保持在1.1不变。但它包含在1.2包中,所以您不需要它。您所需要的只是:

  • 共享日志:共享日志:1.2

您的项目中的某些其他依赖项也可能(很可能)依赖于commons日志,因此maven将处理这个问题,您会发现项目以任何方式工作。您可以使用以下命令查看它所拉入的依赖项的层次结构:

mvn dependency:tree

您还可以将commons日志配置为使用替代的底层日志系统实现,例如Log4J。阅读commons logging user guide(commons日志用户指南)可以了解它是如何工作的,以及如何调整它以满足您的需求。

 类似资料:
  • Apache Commons Logging (原名 Jakarta Commons Logging,JCL)提供的是一个 Java 的日志接口,同时兼顾轻量级和不依赖于具体的日志实现工具。它提供给中间件/日志工具开发者一个简单的日志操作抽象,允许程序开发人员使用不同的具体日志实现工具。用户被假定已熟悉某种日志实现工具的更高级别的细节。JCL提供的接口,对其它一些日志工具,包括Log4J, Ava

  • 问题内容: 我是 JasperReports的 新手,我想将 JasperReports 集成到我的Java程序中,因此,当我单击“打印”按钮时,程序将显示报告。但是,当我单击按钮时,出现 NoClassDefFoundError 。 码 运行时错误 问题答案: 您已经错过了jar文件“ org-apache-commons-logging.jar”。将此jar加载到您的项目中。该问题将得到解决。

  • 我得到下一个错误: 我几乎可以肯定问题出在库导入上,但我不确定也不知道如何修复它。

  • 我们已经提出了类似的问题。但这一款似乎比之前的更复杂,因为Android平台兼容性的变化。 添加这种依赖使应用程序在像素和像素中工作,但它在所有其他设备中崩溃,例外情况如下 我已经试过在ProGuard做所有的改变了。这是我的proguard配置 仍然导致坠机。

  • 我有一个NetBeans项目,我想在其中设计jasper报表,当我通过填充报表时,我发现了一条错误消息。 例外情况是: 线程“awt-eventqueue-0”java.lang.noClassDefounderror:org/apache/commons/logging/logFactory在net.sf.jasperReports.engine.util.jrloader.(jrloader.

  • 在你的应用中使用日志有助于监控、调试、错误跟踪以及商业智能分析。Play 提供了日志 API,可以通过 Logger 对象来使用,Play 使用 Logback 作为日志引擎。 日志体系结构 日志 API 提供了一组构件来帮助你实现高效的日志记录策略。 Logger 你的应用可以定义 Logger 实例来发送日志信息。每个 Logger 有一个名字,它会出现在日志信息中,该名字是用于配置层级关系的