Почему SBT 0.7.7 не работает корректно на моей системе Linux? (детали дела внутри)

Прежде всего, я хотел бы попросить исправить название моего вопроса, если вам придет в голову что-то лучшее.

Давайте возьмем пример веб-сервиса Lift REST из книги Simply Lift Дэвида Поллака здесь.

Если я открываю консоль Windows (Windows XP SP3, все обновления, Oracle JDK 7) внутри каталога и запускаю "sbt" (sbt.bat), все работает просто отлично. Но если я пытаюсь сделать то же самое (но используя "./sbt") в Linux (XUbuntu 11.10, OpenJDK 6, OpenJDK 7, Oracle JDK 7 (пробовал все)), SBT возвращается (вместо того, чтобы перейти в режим консоли SBT) сразу после того, как он выполнил свою работу. Это означает, что будь то команда ./sbt, она возвращается примерно сразу (после завершения автоматического обслуживания проекта), или ./sbt jetty-run - она просто запускает веб-сервер и немедленно его выключает.

Более того, веб-сервис, который я разработал для своего проекта, компилируется и работает нормально под Windows, но не может быть скомпилирован (используя ./sbt compile) под Linux (той же версией SBT). Ошибка "source file '/.../src/main/scala/code/lib/FooBar.scala;src/main/scala/bootstrap/liftweb/Boot.scala' could not be found", где "FooBar.scala" - это объект, в котором я делаю все сервисы (напрямую вызывается из Boot.scala).

Есть идеи, что может быть причиной и как это исправить?

UPDATE: Причина первой проблемы (SBT возвращается в shell вместо того, чтобы предложить SBT консоль), похоже, в том, что файл был проверен на Windows и имел CR+LF вместо простого LF окончания строки. Решение проблемы, когда исходные файлы не были найдены, заключалось в использовании команды clean для перекомпиляции с нуля.

6
задан Ivan 24 October 2011 в 14:46
поделиться