2017-02-17 5 views
2

Я делаю очень простое доказательство концепции сторонней библиотеки (в данном случае, solrj).commons-logging-api-1.1.jar против commons-logging-1.2.jar

Хотя я использую Maven в качестве системы сборки, я получаю ошибку

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

как solrj (4.10.4) не определяет его как зависимость.

поэтому я теперь вручную добавлять Commons Logging как Maven зависимости, но я не уверен, какой из них добавить:

  • Обще-каротаж апи-1.1.jar
  • или Обще-каротаж-1,2 .jar

Программы успешно выполняются, независимо от того, какой из двух я добавляю.

Мои вопросы:

  • В чем разница между 2-файлов?
  • И почему commons-logging-api не существует в версии 1.2?

ответ

1

Commons-logging-api - это всего лишь набор интерфейсов, к которым скомпилирован код (Solr в этом случае), без «блокировки» в какой-либо конкретной реализации каротажа. Он вряд ли изменится вообще с 1,1, поэтому вектор maven для него останется неизменным на 1,1. Но в любом случае он входит в комплект поставки 1.2, поэтому вам это не нужно. Все, что вам нужно:

  • Обще-каротаж: Обще-каротаж: 1,2

Это возможно (вероятно), что некоторая другая зависимость в проекте зависит от Викисклада лесозаготовок также, следовательно, специалист подберет это и вы обнаружите, что проект работает в любом случае. Вы можете увидеть иерархию зависимостей она тянущая в использовании:

mvn dependency:tree 

Вы также можете настроить Викисклад протоколирование использовать альтернативную основную реализацию системы журнала, например. Log4J. Было бы полезно прочитать commons-logging user guide, чтобы узнать, как это работает и что вы можете сделать, чтобы настроить его на свои требования.

 Смежные вопросы

  • Нет связанных вопросов^_^