Play! Framework 는 Typesafe(현 Lightend)사에서 개발한 웹 프레임워크로 Scala로 웹 어플리션을 개발할 때 편리한 기능들을 제공합니다. 하지만 IntelliJ IDEA로 Play! Framework 기반의 개발을 하는 중 수동으로 target 등을 삭제하였는데 다음의 오류가 발생하였습니다.

Error:(10, 19) object login is not a member of package views.html
Ok(views.html.login.render())
              ^

정상적으로 빌드가 되던 중 코드를 수정하지 않고 재빌드만 하였지만 위 오류가 발생하였습니다.

object xxx is not a member 원인

대부분의 경우는 IntelliJ IDEA에 저장된 Cache가 깨지면서 위와 같은 현상이 발생하였습니다. Dependencies를 변경한 경우는 해당 라이브러리가 실제로 없는 경우도 있었습니다.

해결 방법

해결 방법은 IntelliJ IDEA의 Cache 문제이므로 Cache를 초기화하고 다시 실행하면 정상적으로 빌드됩니다.

메뉴 > File > Invalide Caches / Restart...

위의 메뉴에서 Invalid Caches / Restart...을 눌러주면 자동으로 문제는 해결됩니다. 위의 방법으로 해결 되지 않을 때, Typesafe의 Activate를 다시 실행하면 정상적으로 라이브러리를 인식하여 동작하였습니다.

$ bin/activate run

간단한 문제지만 원인 파악과 해결법을 모른다면 디버깅 한다고 시간을 낭비할 수 있는 오류였습니다.