2013-02-28 3 views
1

sbtantlr 플러그인을 사용하고 antlr v3.5를 사용하도록 조정 중입니다. 그것은 scala 2.9.2에서 잘 작동했습니다.Sbt 플러그인 바이너리 비 호환성

오늘 스칼라를 2.10.0으로 업그레이드했습니다.

2.10.0에서 플러그인을 컴파일하고 플러그인 'sbtantlr.jar'을 내 메인 스칼라 프로젝트의 'lib'디렉토리에 넣었습니다. 플러그인에서

바이너리 호환성이 감지 :

SBT이 오류 메시지와 함께 작동이 중지.

컴파일러 버전을 2.9.2로 되돌리고 올바르게 작동합니다.

SBT (공식 이진 릴리스)가 2.9로 빌드 되었기 때문에 그것이 가능합니까? 정보를 어디에서 찾을 수 있습니까?

답변

4

예, sbt 0.12.x는 2.9x로 제작되었으며 모든 플러그인은 이진 Scala 버전과 일치해야합니다.

+0

감사합니다. 그것은 모든 것을 설명합니다. –

1

Yann이 말한 것에 더 많은 정보를 추가하기 위해 스칼라는 부 버전 간의 호환성만을 보장합니다. 즉, 2.8.x 버전으로 컴파일 된 코드는 다른 2.8.x 버전으로 컴파일 된 코드와 호환되지만 2.8.x로 컴파일 된 코드는 2.9.x 버전으로 컴파일 된 코드와 호환되지 않습니다.

이제 SBT는 Scala 응용 프로그램이며, 플러그인과 빌드 구성은 모두 라이브러리입니다. SBT 0.12.x는 Scala 2.9.x로 컴파일되었으므로 모든 플러그인과 프로젝트 빌드 구성도 Scala 2.9.x로 컴파일해야합니다.

프로젝트 자체는 SBT와 상호 작용할 필요가 없으므로 모든 버전으로 컴파일 할 수 있습니다.