Как собрать / протестировать Scala без зависимости от IDE? - PullRequest
5 голосов
/ 16 сентября 2010

Я хорошо изучаю Scala и получаю от этого огромное удовольствие; Я надеюсь начать в нем будущие проекты, а не Java. Что мне нравится меньше, так это (относительно) плохая поддержка IDE. Я обнаружил, что и IDEA, и Eclipse с плагином Scala (включая ночные сборки) немного ненадежны или сложны в использовании - я хочу то, от чего я всегда могу зависеть. Например. вчера я не смог получить свежую установку плагина eclipse +, чтобы вообще запустить мои тесты или даже открыть окно редактора!

Я подумываю о переходе между Eclipse / IDEA в зависимости от того, какая из них лучше всего подходит для поставленной задачи, и, что более важно, урезание моей зависимости от IDE при создании и запуске тестов (ScalaTest). Для меня это нетривиально, так как я вырос на Java в Eclipse; Первым делом было сложно оставить Eclipse SVN для использования GIT. Учитывая, что у меня есть время, чтобы изучить только один инструмент, это должны быть Ant, Maven, buildr, sbt, ....? Как работают другие люди?

Ответы [ 5 ]

10 голосов
/ 16 сентября 2010

Я использовал Maven и sbt со Scala и обнаружил, что оба они довольно просты в использовании.

Однако, sbt чувствует себя намного ближе к Scala, поскольку его файлы сборки написаны на самом Scala (в отличие от XML в Maven), а sbt поддерживает сборку REPL, имеет непрерывную компиляцию, тестирование и т. Д.

Поэтому я бы посоветовал вам использовать sbt для простого проекта Scala.

Но если вы хотите создавать стандартные проекты Java, такие как WAR, EJB и т. Д., Я чувствую, что Maven имеет лучшую поддержку для них.

Кроме того, Maven имеет огромную экосистему плагинов, которая позволяет вам делать практически все, охват кода, составление отчетов, проверка стандартов кода, генерация документации и многое другое.

3 голосов
/ 17 сентября 2010

Я бы использовал SBT с IDEA. Хотя я не пробовал, я знаю, что есть некоторая поддержка для интеграции SBT и IDEA.

В любом случае, SBT является отличной основой для всех задач сборки и тестирования Scala.

1 голос
/ 30 сентября 2010

Buildr поддерживает Scala и Java в качестве языков первого класса, с поддержкой ScalaCheck и ScalaSpecs, и, конечно, также имеет достаточно плагинов, чтобы сделать его хорошим конкурентом для Maven.

1 голос
/ 16 сентября 2010

РЕДАКТИРОВАТЬ: Uuuups. Сожалею. На самом деле я неправильно понял ваш вопрос и прокомментировал только IDE. Когда дело доходит до сборки проекта, я использую make;), потому что он хорошо интегрирован в Vim

, хотя я не хотел бы делать ЛЮБОЙ проект Java без IDE, в настоящее время я делаю довольно большой проект только в Vim . Я знаю, что это довольно "подход каменного века", но он работает просто отлично.

С одной стороны, я был сыт по горло глючным / медленным / отсутствующим поддержкой Scala всех IDE. Я пробовал Scala, netbeans и IDEA и находил работу с ними (в Scala) довольно болезненной.

С другой стороны, у Scala есть некоторые свойства, которые помогают при работе с простым редактором: вы можете иметь больше классов в одном файле, поэтому я обычно определяю целый пакет в одном файле, который снова не становится слишком большим, так как класс Scala обычно очень (или даже очень) маленькие. Поэтому обычно у меня открыты только два или три файла одновременно, и поэтому мне не нужно управление пакетами / файлами.

Я не могу заставить работать свертывание кода по языковым тегам, но сворачивание с помощью отступов прекрасно работает, если вы придерживаетесь соглашений об отступах в Scala.

Одна вещь, которая не работает, это автозаполнение. Но опять же, это заставляет меня писать более слабосвязанные объекты;)

0 голосов
/ 01 октября 2010

Просто добавляю мои два цента.Я думаю, вы должны попробовать Netbeans тоже.Предполагается, что он будет самым дружественным к Scala среди трех основных игроков (Eclipse, Idea и Netbeans).

Мне было очень весело с Netbeans 6.8 и scala-2.8.0.r22602-b20100720020114

Справедливо было бы сказать, что я не буду программировать Scala сейчас, еслине был для плагина Netbeans.Я потратил немало времени, пытаясь заставить его работать так же гладко, как и другие, но без особого успеха.

Я использую Netbeans для разработки и Ant для автономной сборки.Информация о настройке Ant для Scala здесь: http://scriptlandia.blogspot.com/2007/04/how-to-compile-and-run-scala-program.html

...