토이 프로젝트 오류 해결

Lee Seung Jae·2022년 2월 21일
0

이슈 발생 1

java.io.FileNotFoundException: class path resource .class cannot be opened because it does not exist

라는 이슈가 발생하게 되었다.

구글 검색을 통해 많은 케이스들을 봤는데 많이 헤맸다.

당연히 쉽게도 해석이 되었던 저 문장의 핵심 구문은 .class does not exist

그러니까 클래스가 존재하지 않는다는 거다.

발생했던 시점은 내가 클래스를 삭제하고 다시 애플리케이션 실행을 진행했을 때 저 오류를 뱉었다.

인텔리제이에 캐시된게 문제가 있는가 하면서

캐시를 삭제해주고, 그리고 gradle clean 을 통해 build 파일들도 다 삭제했다가 재 빌드를 진행했다.

그래도 역시 되지 않더라... 😱

여기 부분부터 상당히 절망적 이었던것 같다.

해결책

해결한 방법은 out폴더는 gradle clean 했을 때 삭제되지 않는다.

그러니까 저 out 디렉토리에는 자꾸 클래스 파일이 남아있는데 실제 구동하는 내 프로젝트 목록에는 폴더가 없어서?

그래서 에러를 뱉은 것 같다.

  • out
    • 폴더는 인텔리제이 빌드시에 컴파일한 class를 저장하는 폴더
  • build
    • 폴더는 gradle 빌드시에 컴파일한 class를 저장하는 폴더

그러니까 이 인텔리제이 빌드때의 컴파일에서 차이가 나니까 에러를 뱉어준 것이다.

properties, 직접 클래스에서 import했던 것들

전부 삭제해줬는데 이 에러를 뱉어서 상당히 골치아팠다.

빌드할 때 에러가 나게되면 일단 컴파일 클래스들을 저장하는 디렉토리들 부터 체크하고 의존성을 체크하는 식으로

빌드 시에 에러를 찾아야 겠다.

이슈 발생 2

이거는 꽤 간단한 이슈였다.

일단 지금 현재의 내 프로젝트는

스크린샷 2021-09-20 오후 9 20 19

현재 이런식으로 프로필을 나누어서 사용하고 있다.

이 상태에서 prod로 운영하려고

먼저 gradle build를 통해 빌드, 그리고 테스트가 돌아가는데 전부 에러가 발생했다.

분명 나는 application-test.yaml 을 넣어줬는데도 불구하고 에러가 나는 것이었다.

spring:
  profiles:
    active: test
    include: dev

해결했던 방법은 /test/resources/ 에도 application.yaml 파일을 생성해주고 거기에

위와 같이 프로필 활성은 test로 하는데 dev 설정을 포함해서 로딩하도록 진행했다.

그러니까 정상적으로 테스트가 수행되었다.

profile
💻 많이 짜보고 많이 경험해보자 https://lsj8367.tistory.com/ 블로그 주소 옮김

0개의 댓글