Как заставить sbt использовать двоичные файлы scala из каталога $ SCALA_HOME? - PullRequest
6 голосов
/ 06 апреля 2011

sbt загружает новую версию компилятора scala и библиотеки scala для каждого проекта sbt по этому адресу: ./project/boot/scala-2.8.1/lib/scala-library.jar
./project/boot/scala-2.8.1 / lib / scala-compiler.jar

Как мне заставить его подобрать компилятор и библиотеку из местоположения, указанного в $ SCALA_HOME?

Кроме того, я удивленчто это не общее требование.Разработчики Scala предпочитают использовать отдельные копии компилятора и библиотеки для каждого проекта?

Я нашел тот же запрос, который остался без ответа: http://groups.google.com/group/simple-build-tool/browse_thread/thread/9e2c7bc34253ad0f?pli=1

Заранее спасибо за помощь.

Ответы [ 2 ]

4 голосов
/ 06 апреля 2011

Отказ от ответственности, я сам этим не пользуюсь, но мне было любопытно, возможно ли это.

Основываясь на использовании локального экземпляра scala , я определил следующий проект:

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
}

Затем в project/build/build.properties:

build.scala.versions=2.8.1-local

Тогда я вижу, что цель console работает нормально, что предполагает, что она будет работать и для компиляции, и для запуска.

3 голосов
/ 06 апреля 2011

Хотя я понимаю эту проблему, я бы сказал, что использование отдельных копий - это хорошо.

  • Вы можете установить несколько версий Scala и несколько проектов, использующих разные версии Scala.это не редкость (в настоящее время у меня есть проекты, использующие 2.8.0, другие, использующие 2.8.1, другие, использующие 2.9.0.RC1 ...) - таким образом: вы будете редактировать $ SCALA_HOME каждый раз, когда вы переключаетесь на другой проект?неосуществимо
  • sbt удобно хранит их в локальном кеше ivy2, поэтому получение версий очень быстро
  • если вы клонируете проект других людей, вы можете просто выполнить обновление sbt и сделать там wooop scalaНезависимо от того, была ли у вас эта конкретная версия или нет
  • project / boot, обычно не проверяется ни в каком репозитории, поэтому папка вашего проекта только больше на вашем локальном жестком диске.Учитывая количество вещей, которые у вас есть на компьютере разработчика, я бы сказал, что дополнительные размеры библиотеки и компилятора для проекта - это арахис со стандартными жесткими дисками, состоящими из нескольких сотен ГБ

Вы пытались задать вопросснова в гуглгруппе sbt?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...