我正在做一个非常简单的第三方库概念证明(在本例中为solrj)。
虽然我使用maven作为构建系统,但我收到了错误
java.lang.NoClassDefFoundError:org / apache / commons / logging / LogFactory
因为solrj(4.10.4)没有将它定义为依赖。
因此,我现在可以手动将公共日志记录为maven依赖项,但我不确定要添加哪个:
无论我添加哪两个程序,程序都会成功运行。
我的问题:
答案 0 :(得分:2)
commons-logging-api只是一组接口,代码(在这种情况下是Solr)被编译,没有'锁定'任何特定的日志记录实现。自1.1以来它根本不可能发生变化,因此它的maven向量保持不变为1.1。但无论如何它都包含在1.2捆绑中,所以你不需要它。您所需要的只是:
可能(可能)项目中的某些其他依赖项也依赖于公共日志记录,因此maven会选择它并且您发现项目以任何方式工作。您可以使用以下方式查看依赖关系的层次结构:
mvn dependency:tree
您还可以配置commons-logging以使用备用基础日志系统实现,例如。 Log4J的。值得阅读commons-logging user guide以了解它是如何工作的,以及如何根据您的要求进行调整。