commons-logging-api-1.1.jar 与 commons-logging-1.2.jar
commons-logging-api-1.1.jar vs. commons-logging-1.2.jar
我正在对第 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
程序运行成功,无论我添加哪个。
我的问题:
- 这两个文件有什么区别?
- 为什么 commons-logging-api 在 1.2 版中不存在?
commons-logging-api 只是代码(在本例中为 Solr)编译到的一组接口,没有 'locking in' 到任何特定的日志记录实现。自 1.1 以来,它不太可能发生任何变化,因此它的 Maven 向量在 1.1 中保持不变。但无论如何它都包含在 1.2 包中,因此您不需要它。您只需要:
- commons-logging:commons-logging:1.2
您的项目中的某些其他依赖项也可能(很可能)也依赖于 commons-logging,因此 Maven 会选择它并且您会发现该项目以任何一种方式工作。您可以使用以下命令查看它所引入的依赖关系的层次结构:
mvn dependency:tree
您还可以配置 commons-logging 以使用备用底层日志系统实现,例如。 Log4J。值得一读 commons-logging user guide 以了解其工作原理以及如何根据您的要求对其进行调整。
我正在对第 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
程序运行成功,无论我添加哪个。
我的问题:
- 这两个文件有什么区别?
- 为什么 commons-logging-api 在 1.2 版中不存在?
commons-logging-api 只是代码(在本例中为 Solr)编译到的一组接口,没有 'locking in' 到任何特定的日志记录实现。自 1.1 以来,它不太可能发生任何变化,因此它的 Maven 向量在 1.1 中保持不变。但无论如何它都包含在 1.2 包中,因此您不需要它。您只需要:
- commons-logging:commons-logging:1.2
您的项目中的某些其他依赖项也可能(很可能)也依赖于 commons-logging,因此 Maven 会选择它并且您会发现该项目以任何一种方式工作。您可以使用以下命令查看它所引入的依赖关系的层次结构:
mvn dependency:tree
您还可以配置 commons-logging 以使用备用底层日志系统实现,例如。 Log4J。值得一读 commons-logging user guide 以了解其工作原理以及如何根据您的要求对其进行调整。