E106: Package Name Already Defined

E106: Package Name Already Defined (이미 정의된 패키지 이름)

패키지 심볼과 같은 이름을 가진 최상위 정의(객체나 클래스 같은)가 있을 때 나오는 에러예요.

출처: Scala 3 Reference

본문

컴파일러 메시지가 알려주는 내용은 이렇게 돼요.

  • 그 이름은 이미 패키지에 의해 사용되고 있어요
  • 그 정의는 같은 이름을 가진 패키지와 공존할 수 없어요

이 에러는 주로 증분 컴파일(incremental compilation) 상황에서 생겨요.

  • 특정 이름의 심볼을 정의하는 클래스파일이 존재할 때
  • 소스 코드가 같은 이름으로 패키지를 정의하려 할 때
  • 클래스파일과 패키지 정의 사이의 충돌로 이 에러가 발생하는 거예요

이 에러는 특정 클래스패스와 컴파일 순서 조건이 필요해서 단순 소스 코드로 재현하기 어려워요.

해결하려면 아래 중 하나를 선택하면 돼요.

  • 충돌을 피하도록 최상위 정의 이름을 바꾸기
  • 충돌하는 클래스파일 삭제하기
  • 패키지 구조 재구성하기