2017-02-17 7 views
2

제 3 자 라이브러리 (이 경우 solrj)에 대한 개념 증명을 아주 간단하게하고 있습니다.commons-logging-api-1.1.jar vs. commons-logging-1.2.jar

내가 빌드 시스템으로 받는다는 사용하고 있지만, 나는 종속성으로 정의하지 않는 오류를 solrj (4.10.4)와 같은

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

를 얻을.

I 따라서 지금 수동으로 받는다는 종속성으로 로그인 공유지를 추가 할 수 있습니다,하지만 난 추가 할 수있는 하나 확실하지 오전 :

  • 평민 로깅-API-1.1.jar
  • 또는 평민 로깅 - 1.2 .jar

내가 추가 한 두 프로그램에 관계없이 프로그램이 성공적으로 실행됩니다.

내 질문 :

  • 2 개 파일의 차이점은 무엇입니까?
  • 그리고 commons-logging-api가 버전 1.2에없는 이유는 무엇입니까?

답변

1

commons-logging-api는 특정 로깅 구현에 '잠금'하지 않고 코드 (이 경우 Solr)를 컴파일하는 인터페이스 세트입니다. 1.1 이후로 변경되지는 않았으므로 1.1에 대한 maven 벡터는 변경되지 않습니다. 그러나 어쨌든 1.2 묶음에 포함되어 있으므로 필요하지 않습니다. 당신이 필요로하는 것입니다 :

  • 평민 로깅 : 평민 로깅은 : 1.2

그것은 (가능성이) 프로젝트의 다른 의존성도 평민 로깅에 의존 가능성이 있습니다, 따라서 받는다는가 선택할 것 이것과 당신은 프로젝트가 어느 쪽이든 작동한다는 것을 알게됩니다. 당신은 사용하여이 당기는 의존성의 계층 구조를 볼 수 있습니다 당신은 또한 다른 기본 로그 시스템 구현 등을 사용하는 평민 로깅을 구성 할 수 있습니다

mvn dependency:tree 

. Log4J. commons-logging user guide을 읽고 어떻게 작동하는지 그리고 요구 사항에 맞게 조정할 수있는 방법을 배우는 것이 좋습니다.