스칼라에서는 패키지 문 to allow shorter imports을 스택하는 것이 일반적이지만 스태킹 된 패키지를 사용하여 파일을로드 할 때 동일한 조직으로 시작하는 가져 오기를 사용하려고하면 컴파일러 오류가 발생합니다. 프리젠 테이션 컴파일러. 코드는 IDE 외부의 sbt에서 정상적으로 컴파일됩니다. 내가 오류 object github is not a member of package com.coltfred.util.com
를 얻을 수 가져 오기에scala-ide가 파일 위쪽에 여러 패키지 정의를 허용하지 않는 이유는 무엇입니까?
package com.coltfred
package util
package time
import com.github.nscala_time.time.Imports._
다음과 같이
예제 코드입니다.
가져 오기를 한 줄로 옮기면 오류가 사라지 겠지만 코드 기반에서이 연습을 자주 사용 했으므로 한 줄로 된 패키지 문으로 모두 변경하면 문제가됩니다.
왜 이런 일이 발생하며이를 해결하기 위해 할 수있는 일이 있습니까?
편집 :
내가 이것에 대한 Eclipse 프로젝트 파일을 생성 일식-SBT 플러그인을 사용했다. 디렉토리 구조는 있어야하며 모든 종속성이 클래스 경로에 있습니다.편집 2 :
이있다 (같은 패키지에 있었어야)이 폴더의 유틸리티 패키지의 테스트 트리에서 파일을했지만, 상단에 중복 패키지 문을했다 밝혀졌습니다. 테스트 트리를 확인하지 않았으므로 주 트리의 컴파일에 영향을 미치지 않아야하지만 분명히 틀 렸습니다.
필자는 내 디렉토리 pUtil을 호출합니다. 나는 항상 내 모든 패키지 이름의 시작 부분에 'p'를 사용한다. –
내 두 번째 편집을 참조하십시오. 그것은 dir이 아니라 잘못된 테스트 파일입니다. – coltfred
문제의 근원에 있기 때문에 이것을 "올바른"대답으로 선택했지만, 미래의 사람들에게도 테스트 파일을 고려해야합니다! – coltfred