Какова лучшая система сборки Scala? [закрытый]

Добавьте файл .tfignore в папку выпуска, содержащую расширения, которые вы не хотите игнорировать:

!*.vb

Я попытался добавить это в .tfignore, который существовал в моей папке с решением, и не сделал этого Помогите. Это сработало только когда я добавил один из родительского релиза.

..\Release
..\Release\.tfignore <-- this one
..\Release\SolutionA\
..\Release\SolutionA\.tfignore

msdn тема на тему

50
задан Community 23 May 2017 в 02:00
поделиться

5 ответов

Пунктами 2 и 4 чрезвычайно чрезвычайно трудно управлять с помощью текущего скаляра. Проблема в том, что компилятор Scala немного тупит в создании файлов. По сути, он будет создавать все, что вы его кормите, независимо от того, действительно ли нужно создавать этот файл. В Scala 2.8.0 в этом отношении будут существенные улучшения, но до тех пор ... Eclipse SDT на самом деле имеет очень сложный (и очень хакерский) код для обнаружения изменений и отслеживания зависимостей. В целом работает неплохо, но морщинки, как видите, есть. Eclipse SDT 2.8.0 будет полагаться на вышеупомянутые улучшения самого scalac.

Таким образом, создание только измененных файлов практически исключено. Помимо SDT, единственный известный мне инструмент, который даже пытается это сделать, - это SBT ( Simple Build Tool ). Он использует плагин компилятора для отслеживания файлов по мере их компиляции и запроса графа зависимостей, вычисленного самим компилятором. На практике это дает примерно 50% -ное улучшение по сравнению с методом перекомпиляции мира. Опять же, это хитрость, позволяющая обойти недостатки в версии scalac до 2.8.0.

Хорошая новость заключается в том, что достаточно быстрая компиляция по-прежнему возможна, даже не беспокоясь об обнаружении изменений. FSC использует ту же технологию (ох, это звучало так «Чарли Эппс»), которую Eclipse SDT использует для реализации быстрой инкрементной компиляции. Короче говоря, это довольно быстро.

Лично я использую Apache Buildr . Его конфигурация значительно чище, чем у Maven или SBT, а время запуска на несколько порядков меньше (при работе под MRI). Он интегрируется с FSC и пытается самостоятельно обнаруживать базовые изменения (довольно примитивно). Он также имеет автоматическую магическую поддержку основных тестовых фреймворков Scala (ScalaTest, ScalaCheck и Specs), а также поддержку совместной компиляции с исходными кодами Java и генерации метаданных IDE для IntelliJ и Eclipse. Да, и он поддерживает все функции Maven (разрешение зависимостей и т. Д.), А также некоторые. Я даже работаю над расширением, которое позволит поддерживать интерактивную оболочку, интегрированную с JavaRebel, и поддерживать несколько поставщиков оболочки (Scala, JIRB, Clojure REPL и т. Д.). Он еще не готов для SVN, но я сделаю коммит, как только он будет готов (возможно, к 1.3.5).

Как видите, я твердо придерживаюсь мнения, что Buildr - лучший инструмент сборки Scala там. В отношении Scala его документация немного неоднородна, но это потому, что все настолько просто, что трудно задокументировать, не чувствуя себя многословным. Вы всегда можете посмотреть примеры в одном из моих репозиториев GitHub . Удачи!

34
ответ дан 7 November 2019 в 11:06
поделиться

Вы смотрели на Intellij IDEA и ее интеграцию Scala ? У Intellij есть преданные (фанатичные?) Последователи среди Java-разработчиков, так что вы можете найти это подходящим для ваших нужд.

6
ответ дан 7 November 2019 в 11:06
поделиться

Меня также сильно разочаровал плагин scala в Eclipse, и я могу добавить к этому списку еще несколько проблем:

  • автозаполнение работает только иногда
  • отладчик не t работают правильно (особенно при попытке отладки scala xml)
  • отладчик забывает точки останова
  • «перейти к определению» не всегда работает.

Я рад слышать, что Buildr звучит как лучшая альтернатива (во всяком случае, в плане сборки), я попробую - спасибо!

4
ответ дан 7 November 2019 в 11:06
поделиться

Я пошел по той же дороге, и вот где я нахожусь: - После предварительного расследования я бросил Кейт. Мне нравится использовать его для большинства вещей, но когда дело дошло до таких вещей, как определение завершения вкладок, мне его очень не хватало. Я бы порекомендовал вам вместо этого изучить gedit, который намного надежнее для разработки Scala. - С gedit в качестве моего редактора я использую SBT и считаю его отличным инструментом для сборки. Я могу перевести его в «тестовый» режим, когда при изменении любого кода он перекомпилирует соответствующие файлы и запускает мой набор тестов. Это был чрезвычайно эффективный способ работы.

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

3
ответ дан 7 November 2019 в 11:06
поделиться

Если вы хотите использовать Eclipse, но собрать проект с помощью sbt и по-прежнему иметь возможность отлаживать, прочтите этот пост здесь:

zikaprog.wordpress.com/2010/04/19/scala-eclipse -sbt-and-debugging /

Это также может быть применено к другим сборщикам, кроме sbt.

2
ответ дан 7 November 2019 в 11:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: