Может кто-нибудь объяснить, как правильно использовать SBT?
Я выхожу из шкафа на этом! Я не понимаю СБТ. Там, я сказал, теперь помогите мне, пожалуйста.
Все дороги ведут в Рим, и это то же самое для SBT: для начала SBT
есть SBT
, SBT Launcher
, SBT-extras
и т.д., а затем есть разные способы включить и решить на репозитории. Есть ли лучший способ?
Я спрашиваю, потому что иногда я немного теряюсь. Документация SBT очень полная и полная, но я не знаю, когда использовать build.sbt
или project/build.properties
или project/Build.scala
или project/plugins.sbt
.
Тогда становится весело, есть Scala-IDE
и SBT
- Каков правильный способ их использования? Что на первом месте, курица или яйцо?
Самое главное, наверное, как вы находите нужные репозитории и версии для включения в свой проект? Я просто вытаскиваю мачете и начинаю взламывать свой путь вперед? Я довольно часто нахожу проекты, которые включают в себя все и кухонную раковину, а затем я понимаю - я не единственный, кто немного потерял.
В качестве простого примера, прямо сейчас, я начинаю новый проект. Я хочу использовать последние функции SLICK
и Scala
, и для этого, вероятно, потребуется последняя версия SBT. Какая разумная точка для начала и почему? В каком файле я должен его определить и как он должен выглядеть? Я знаю, что могу заставить это работать, но мне бы очень хотелось, чтобы экспертное мнение о том, куда все должно идти (почему он должен идти, будет бонус).
Я использую SBT
для небольших проектов уже более года. Я использовал SBT
, а затем SBT Extras
(так как некоторые головные боли магически исчезают), но я не уверен, почему я должен использовать тот или иной. Я просто немного расстроен из-за того, что не понимаю, как все сочетается (SBT
и репозитории), и думаю, что это спасет следующего парня, приходящего таким образом, на множество трудностей, если это можно объяснить человеческими терминами.
Ответы
Ответ 1
Самое главное, наверное, как вы можете найти правильные репозитории и версии для включения в свой проект? Я просто вытаскиваю мачете и начинаю взламывать свой путь вперед? Я часто нахожу проекты, которые включают все и кухонную раковину.
Для зависимостей, основанных на Scala, я хотел бы остановиться на рекомендациях авторов. Например: http://code.google.com/p/scalaz/#SBT указывает на использование:
libraryDependencies += "org.scalaz" %% "scalaz-core" % "6.0.4"
Или https://github.com/typesafehub/sbteclipse/ содержит инструкции по добавлению:
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.1.0-RC1")
Для зависимостей на Java я использую http://mvnrepository.com/, чтобы узнать, что там, затем нажмите вкладку SBT. Например, http://mvnrepository.com/artifact/net.sf.opencsv/opencsv/2.3 указывает на использование:
libraryDependencies += "net.sf.opencsv" % "opencsv" % "2.3"
Затем вытащите мачете и начните взламывать свой путь вперед. Если вам повезет, вы не используете банки, которые зависят от некоторых из этих же банок, но с несовместимыми версиями. Учитывая экосистему Java, вы часто включаете в себя все и кухонную раковину, и требуется некоторое усилие для устранения зависимостей или обеспечения отсутствия необходимых зависимостей.
В качестве простого примера, прямо сейчас, я начинаю новый проект. Я хочу использовать последние функции SLICK и Scala, и для этого, вероятно, потребуется последняя версия SBT. Какова нормальная точка для начала и почему?
Я думаю, что здравомыслящий момент заключается в постепенно повышать устойчивость к sbt.
Убедитесь, что вы понимаете:
Храните эти 4 страницы в любое время, чтобы вы могли прыгать и искать различные определения и примеры:
Максимально используйте show
и inspect
и завершение вкладки, чтобы ознакомиться с фактическими значениями параметров, их зависимостей, определений и соответствующих параметров. Я не верю, что отношения, которые вы обнаружите с помощью inspect
, документированы где угодно. Если есть лучший способ, я хочу знать об этом.
Ответ 2
Я использую sbt:
- Используйте sbt-extras - просто получите скрипт оболочки и добавьте его в корневой каталог вашего проекта
- Создание
project
папки с MyProject.scala
файлом для настройки SBT. Я предпочитаю это по сравнению с подходом build.sbt
- это scala и более гибкий - Создайте файл
project/plugins.sbt
и добавьте соответствующий плагин для вашей IDE. Либо sbt-eclipse, sbt-idea или ensime-sbt-cmd, чтобы вы могли создавать файлы проекта для eclipse, intellij или ensime. - Запустите sbt в корне вашего проекта и сгенерируйте файлы проекта для вашей IDE
- прибыль
Я не беспокоюсь о проверке файлов проекта IDE, так как они генерируются sbt, но могут быть причины, по которым вы хотите это сделать.
Вы можете увидеть пример, подобный этому, здесь.
Ответ 3
Use Typesafe Activator, причудливый способ вызова sbt, который поставляется с шаблонами проектов и семенами: https://typesafe.com/activator
Activator new
Fetching the latest list of templates...
Browse the list of templates: http://typesafe.com/activator/templates
Choose from these featured templates or enter a template name:
1) minimal-java
2) minimal-scala
3) play-java
4) play-scala
(hit tab to see a list of all templates)