2024-11-29 07:03:32
Spring Boot로 만든 프로젝트가 IntelliJ IDEA Ultimate 버전에서는 잘 되나, Community 버전에서는 아래 오류와 함께 정상 동작하지 않음.
java.lang.IllegalStateException: Error processing condition on org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration.propertySourcesPlaceholderConfigurer
Java: 1.8.0 181
Spring Boot: 2.7,17
배포 시 내부 Tomcat을 사용하지 않는 환경
자동으로 추가되는 설정의 차이로 발생한다.
Add dependencies with "provided" scope to classpath
위 설정이 Spring Boot 실행 설정으로 자동으로 인식되어 추가되는 반면 Community 버전은 그렇지 않다.
Spring boot 내부의 Tomcat(spring-boot-starter-tomcat
)은 배포 시 제거하고자 하는 프로젝트이므로 scope가 provided
로 설정되어 있다. 그로 인해서 찾지 못해서 발생하는 문제이다.
Edit Configurations
> 사용하는 설정 > Modify options
> Add dependencies with "provided" scope to classpath
이후 OK
를 눌러 적용시킨다.
내부 톰캣의 스코프를 변경하는 방법이다. 배포와 개발 사이의 의존성 스코프가 달라지므로 권장하지 않음.
pom.xml
파일의 spring-boot-starter-tomcat
의 scope
를 compile
로 변경 (기존: provided
)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>compile</scope>
</dependency>