[SPRING] 요람 | 스프링 부트 의존성은 제외되지 않는다.
SPRING요람 | 스프링 부트 의존성은 제외되지 않는다.
나는 log4j가 내가 작업하고있는 프로젝트에서 일하도록하고있다. build.gradle에 관련 log4j 종속성을 추가하고 작동 할 수 있도록 Spring 부트 스타터 로깅을 제외했습니다.
이 기능은 빌드 도구로 Maven을 사용할 때 잘 동작했지만 일단 Gradle로 전환하면 스프링 부트 스타터에서 로깅을 제외하고 전혀 작동하지 않습니다. 다음은 build.gradle 내 종속성입니다.
dependencies {
compile('org.springframework.boot:spring-boot-starter-data-jpa')
compile('org.springframework.boot:spring-boot-starter-web'){
exclude module: 'org.springframework.boot:spring-boot-starter-logging'
}
compile('org.springframework.boot:spring-boot-starter-log4j')
compile('org.springframework.boot:spring-boot-starter-data-rest')
compile('org.springframework.boot:spring-boot-starter-actuator')
compile('org.postgresql:postgresql:9.3-1101-jdbc41')
compile('org.scala-lang:scala-library:2.10.4')
testCompile('org.springframework.boot:spring-boot-starter-test') {
exclude module: 'commons-logging'
}
providedCompile('org.springframework.boot:spring-boot-starter-tomcat')
}
그러나 의존성 트리에서 명확하게 볼 수 있듯이 spring-boot-starter-logging은 여전히 존재합니다. 로깅이 작동하지 않는 이유가 무엇인지 추측합니다.
다음은 종속성 트리입니다.
+--- org.springframework.boot:spring-boot-starter-data-jpa: -> 1.2.1.RELEASE
| +--- org.springframework.boot:spring-boot-starter:1.2.1.RELEASE
| | +--- org.springframework.boot:spring-boot:1.2.1.RELEASE
| | | +--- org.springframework:spring-core:4.1.4.RELEASE
| | | \--- org.springframework:spring-context:4.1.4.RELEASE
| | | +--- org.springframework:spring-aop:4.1.4.RELEASE
| | | | +--- aopalliance:aopalliance:1.0
| | | | +--- org.springframework:spring-beans:4.1.4.RELEASE
| | | | | \--- org.springframework:spring-core:4.1.4.RELEASE
| | | | \--- org.springframework:spring-core:4.1.4.RELEASE
| | | +--- org.springframework:spring-beans:4.1.4.RELEASE (*)
| | | +--- org.springframework:spring-core:4.1.4.RELEASE
| | | \--- org.springframework:spring-expression:4.1.4.RELEASE
| | | \--- org.springframework:spring-core:4.1.4.RELEASE
| | +--- org.springframework.boot:spring-boot-autoconfigure:1.2.1.RELEASE
| | | \--- org.springframework.boot:spring-boot:1.2.1.RELEASE (*)
| | +--- org.springframework.boot:spring-boot-starter-logging:1.2.1.RELEASE
내 log4j.properties 파일은 다음과 같습니다.
log4j.rootLogger=INFO, fileout, CONSOLE
PID=????
LOG_PATTERN=[%d{yyyy-MM-dd HH:mm:ss.SSS}] log4j%X{context} - ${PID} %5p [%t] --- %c{1}: %m%n
# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=${LOG_PATTERN}
# Log4j configurations for with file appender
log4j.category.org.hibernate.validator.internal.util.Version=WARN
log4j.category.org.apache.coyote.http11.Http11NioProtocol=WARN
log4j.category.org.apache.tomcat.util.net.NioSelectorPool=WARN
log4j.category.org.apache.catalina.startup.DigesterFactory=ERROR
log4j.appender.fileout=org.apache.log4j.RollingFileAppender
log4j.appender.fileout.File=sampleLog.log
log4j.appender.fileout.MaxFileSize=1024KB
log4j.appender.fileout.MaxBackupIndex=1
log4j.appender.fileout.layout=org.apache.log4j.PatternLayout
log4j.appender.fileout.layout.conversionPattern=${LOG_PATTERN}
최신 정보
jar 파일 종속성을 배제하도록 수정했습니다. 그러나 로깅은 여전히 작동하지 않습니다. log4j.properties는 클래스 아래의 WAR 배포에도 있습니다.
업데이트 02
문제는 My IDE (STS)
해결법
-
==============================
1.모든 spring-boot-starter- * 프로젝트는 spring-boot-starter 프로젝트에 의존하며, 이는 spring-boot-starter-logging에 의존합니다. 구성 섹션에 다음 줄을 추가하여이 종속성을 제거 할 수있었습니다.
모든 spring-boot-starter- * 프로젝트는 spring-boot-starter 프로젝트에 의존하며, 이는 spring-boot-starter-logging에 의존합니다. 구성 섹션에 다음 줄을 추가하여이 종속성을 제거 할 수있었습니다.
configurations { compile.exclude module: 'spring-boot-starter-logging' }
-
==============================
2.spring-boot-starter-web에서 spring-boot-startter-logging 모듈을 제외 시켰지만 dependency tree에서 명확하게 볼 수 있듯이 spring-boot-startter-data-jpa 모듈은 spring- boot-starter-logging을 사용하기 때문에 다른 모든 spring-boot-starter- * 종속성을 제외해야합니다 (모든 것이 spring-boot-starter-logging에 의존하기 때문에).
spring-boot-starter-web에서 spring-boot-startter-logging 모듈을 제외 시켰지만 dependency tree에서 명확하게 볼 수 있듯이 spring-boot-startter-data-jpa 모듈은 spring- boot-starter-logging을 사용하기 때문에 다른 모든 spring-boot-starter- * 종속성을 제외해야합니다 (모든 것이 spring-boot-starter-logging에 의존하기 때문에).
from https://stackoverflow.com/questions/28734647/gradle-spring-boot-dependencies-are-not-excluding by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 폼 포스트와 스프링 컨트롤러를 사용한 UTF-8 인코딩 (0) | 2019.04.18 |
---|---|
[SPRING] Spring Data Elasticsearch는 Amazon Elasticsearch를 지원합니까? (0) | 2019.04.18 |
[SPRING] ActiveMQ 대기열에서 스프링 반응기 유출을 만드는 방법? (0) | 2019.04.18 |
[SPRING] 스프링 다이나믹 모듈 - 살아있는 프로젝트입니까? (0) | 2019.04.18 |
[SPRING] 하나의 속성에 매핑되지 않은 최대 절전 모드의 referencedColumnNames (0) | 2019.04.18 |