2011-04-05 4 views
6

sbt는이 위치에서 모든 sbt 프로젝트에 대한 scala 컴파일러 및 스칼라 라이브러리의 새 버전을 다운로드합니다. ./project/boot/scala-2.8.1/lib/scala-library.jar
./project/boot/scala -2.8.1/lib/scala-compiler.jar

$ SCALA_HOME이 가리키는 위치에서 컴파일러와 라이브러리를 선택하도록하려면 어떻게해야합니까?

또한 일반적인 요구 사항이 아닙니다. 스칼라 개발자는 모든 프로젝트에 대해 별도의 컴파일러 및 라이브러리 복사본을 선호합니까? http://groups.google.com/group/simple-build-tool/browse_thread/thread/9e2c7bc34253ad0f?pli=1

미리 감사드립니다 당신의 도움을 위해 :

나는 답이었다 같은 요청을 발견했다. 내가 우려를 이해하지만

답변

4

면책 조항,이 내용은 직접 사용하지는 않지만 가능한지 궁금했습니다. project/build/build.properties에서 다음

import sbt._ 
import java.io.File 

class Test(info: ProjectInfo) extends DefaultProject(info) { 
    override def localScala = 
    defineScala("2.8.1-local", new File(System.getenv("SCALA_HOME"))) :: Nil 
} 

: 다음 콘솔 대상이 잘 작동하는지

build.scala.versions=2.8.1-local 

그럼 내가 볼 수있는, 제안 것 local scala instance를 사용하여 바탕으로

, 나는 다음과 같은 프로젝트를 정의 그것은 컴파일과 실행을 위해서도 효과가있을 것입니다.

+0

집에 도착하면이 해결책을 시도 할 것입니다. 정말 고마워! – Salil

+0

그것은 작동합니다! 감사합니다 :) – Salil

+0

'build.sbt' 파일에서 시스템 env 변수를 어떻게 참조 하시겠습니까? – expert

3

, 나는 별도의 복사본을 사용하여 당신이 다른 스칼라 버전을 사용하여 설치 여러 스칼라 버전 및 여러 프로젝트를 가질 수 있습니다 좋은 일

  • 이라고 주장한다. 이건 드문 일이 아닙니다. (현재 2.800을 사용하는 프로젝트 , 2.8.1을 사용하는 다른 프로젝트, 2.9.0.RC1 ...을 사용하는 프로젝트가 있음) - 전환 할 때마다 $ SCALA_HOME을 편집 하시겠습니까? 다른 프로젝트? 적합하지 않은 그들을 편안하게 로컬 ivy2 캐시에, 그래서 버전을 얻는 것은 매우 빠른 입니다
  • SBT 저장
  • 다른 사람들의 프로젝트를 복제하는 경우
  • , 당신은 당신이 있었다는 것을 SBT 갱신 및 wooop 스칼라가 존재 입니다 다만 수 해당 특정 버전이 이미 있거나 없습니다
  • 프로젝트/부트는 일반적으로 어떤 저장소에도 체크인되지 않으므로 프로젝트 폴더 은 로컬 하드 디스크에서만 커집니다. 당신이 개발자 컴퓨터에있는 물건의 양을 고려, 내가

가 다시 질문을 시도해 봤어 프로젝트 당 라이브러리 및 컴파일러에 대한 여분의 크기는 표준 harddisks 여러 hundered GB되는 땅콩을 말하는 것입니다 sbt googlegroup에?

+0

ivy2 캐시에 대해 지적 해 주셔서 감사합니다. Scala가 끊임없이 진화하고 있다는 점을 감안하면 의미가 있습니다. – Salil

관련 문제