728x90
배경
파일을 이동하거나 삭제하는 작업 이후 ConflictingBeanDefinitionException을 만날 때가 있다.
nested exception is org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'memberRepository' for bean class [클래스 경로] conflicts with existing, non-compatible bean definition of same name and class [중복된 클래스 경로]
일반적으로 ConflictingBeanDefinitionException는 중복으로 등록된 클래스가 존재할 때 발생하는 예외이다.
에러에서 친절하게 중복된 클래스의 경로들을 알려주기 때문에 둘 중 하나의 클래스를 찾아서 삭제해주면된다.
하지만 이번에는 파일을 이동하는 작업만 했기 때문에 클래스가 중복될 일도 없었고 에러에서 알려준 경로에는 해당 클래스가 없었다.
원인
구글링을 통해 원인들을 찾아보니 이전에 빌드된 클래스 파일이 남아 있어서 ConflictingBeanDefinitionException 예외가 발생할 수 있다고 한다. 이 방법을 해결하기 위해서는 이전 빌드된 클래스 파일을 없애줘야 한다.
해결
./gradlew clean
위 명령어를 통해 프로젝트를 초기 상태로 되돌릴 수 있다. 즉, 기존에 빌드된 클래스 파일이 삭제되고 새로운 클래스 파일로 빌드되기 때문에 ConflictingBeanDefinitionException 예외를 해결할 수 있다.
728x90