Java commons-logging-api-1.1.jar与commons-logging-1.2.jar

Java commons-logging-api-1.1.jar与commons-logging-1.2.jar,java,apache-commons-logging,Java,Apache Commons Logging,我正在做一个非常简单的第三方库概念验证(在本例中,是solrj) 虽然我使用maven作为构建系统,但我得到了错误 java.lang.NoClassDefFoundError:org/apache/commons/logging/LogFactory 因为solrj(4.10.4)没有将其定义为依赖项 因此,我现在可以手动添加commons日志作为maven依赖项,但我不确定要添加哪一个: commons-logging-api-1.1.jar 或者commons-logging-1.2.j

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

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

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

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

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

  • commons-logging-api-1.1.jar
  • 或者commons-logging-1.2.jar
无论我添加了两个程序中的哪一个,程序都会成功运行

我的问题是:

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

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

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

mvn dependency:tree
您还可以将commons日志配置为使用替代的底层日志系统实现,例如Log4J。值得一读,以了解它是如何工作的,以及您可以做些什么来调整它以满足您的需求