내 gradle 프로젝트는 application
플러그인을 사용하여 jar 파일을 빌드합니다. 런타임 전이 종속성의 일부로 org.slf4j:slf4j-log4j12
. (적어도 5 개 또는 6 개의 다른 전이 종속성에서 하위 전이 종속성으로 참조됩니다.이 프로젝트는 스프링과 하둡을 사용하고 있으므로 부엌 싱크대를 제외한 모든 항목이 가져옵니다 ... 기다릴 필요가 없습니다. ).
내가 slf4j-log4j12
만든 항아리에서 항아리 를 전역 적으로 제외하고 싶습니다 . 그래서 나는 이것을 시도했습니다.
configurations {
runtime.exclude group: "org.slf4j", name: "slf4j-log4j12"
}
그러나, 이것은 제외 할 것 모두 org.slf4j
를 포함하여 유물을 slf4j-api
. 디버그 모드에서 실행할 때 다음과 같은 줄이 표시됩니다.
org.slf4j#slf4j-api is excluded from com.pivotal.gfxd:gfxd-demo-mapreduce:1.0(runtime).
org.slf4j#slf4j-simple is excluded from com.pivotal.gfxd:gfxd-demo-mapreduce:1.0(runtime).
org.slf4j#slf4j-log4j12 is excluded from org.apache.hadoop:hadoop-common:2.2.0(runtime).
각 slf4j-log4j12
전 이적 종속성 의 소스를 찾은 다음 compile foo { exclude slf4j... }
내 dependencies
블록에 개별 명령문 을 가질 필요가 없습니다 .
최신 정보:
나는 또한 이것을 시도했다 :
configurations {
runtime.exclude name: "slf4j-log4j12"
}
결국 빌드에서 모든 것을 제외 합니다! 내가 지정한 것처럼 group: "*"
.
업데이트 2 :
이를 위해 Gradle 버전 1.10을 사용하고 있습니다.