Я не могу использовать sbt.Process внутри / src? - PullRequest
1 голос
/ 22 марта 2011

В настоящее время я использую sbt для сборки и запуска своих программ scala. Я пытаюсь использовать sbt.Process для выполнения системных команд. Я должен что-то упустить, потому что когда я пытаюсь импортировать sbt.Process в один из моих файлов в src /, я получаю эту ошибку.

not found: value sbt
[error] import sbt.Process._

Похоже, я не могу получить доступ к пакету sbt внутри моих файлов src /. Что мне нужно сделать, чтобы получить к нему доступ? Благодарю.

Ответы [ 4 ]

2 голосов
/ 22 марта 2011

Среда SBT (v 0.7.x) доступна только в вашем файле сборки или плагине.

Самый простой способ использовать библиотеку sbt.Process (до 0.9.x, которая будет иметь Process в качестве независимой библиотеки) - это скопировать (лицензия BSD) Process.scala и ProcessImpl.scala в ваш проект

1 голос
/ 22 марта 2011

Ждите Scala 2.9, а затем просто используйте его из scala.sys.process.

1 голос
/ 22 марта 2011

Существуют разные пути к классам для запуска sbt и компиляции ваших исходных файлов.Один classpath предназначен для компиляции файлов в каталоге project / build (который содержит sbt jars и обычно библиотеку scala 2.7.7), а другой - для сборки исходных файлов вашего проекта (который содержит ваши зависимости от lib и lib_managed и обычнобиблиотека scala 2.8. *).Если вы хотите использовать sbt.Process в своих исходных файлах, вы можете сделать две вещи:

  • добавить sbt jar в lib или lib_managed, чтобы он был доступен в classpath вашего проекта
  • используйте снимок версии scala 2.9, он будет иметь встроенный sbt Process как пакет sys.process
0 голосов
/ 06 августа 2012
Пакет

sbt стал неотъемлемой частью стандартной библиотеки Scala начиная с версии 2.9

... этот API был включен в стандартную библиотеку Scala для версии 2.9.

цитата из sbt wiki

Вот ссылка (прокрутить вниз)

хорошо, чтобы использовать его, все, что вам нужно сделать (при условии, что вы используете sbt для сборки), это добавить в build.sbt файл следующую строку кода: sbtPlugin := true он добавит необходимые зависимости к ваш проект.

Конечно, это решение только для того, чтобы ваш импорт работал с пакетом sbt. вам следует изменить код для использования нового пакета scala.sys.process, как предложил Даниэль С. Собрал.

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