Может кто-нибудь объяснить правильный способ использования SBT?


я выхожу из шкафа на этом! Я не понимаю 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 и репозиториев), и думаю, что это сохранит следующий парень идет этим путем много трудностей, если это можно объяснить в человеческих терминах.

3 98

3 ответа:

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

для зависимостей на основе 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. Что является здравым смыслом, чтобы начать работу, и почему?

Я думаю, что здравый смысл заключается в стройте иммунитет к СБТ постепенно.

убедитесь, что вы понимаете:

  1. формат области {<build-uri>}<project-id>/config:key(for task-key)
  2. 3 варианта настроек (SettingKey,TaskKey,InputKey) - прочитайте раздел под названием "Ключи задач" в http://www.scala-sbt.org/release/docs/Getting-Started/Basic-Def

держите эти 4 страницы открытыми в любое время, чтобы вы могли прыгать и искать различные определения и примеры:

  1. http://www.scala-sbt.org/release/docs/Getting-Started/Basic-Def
  2. http://www.scala-sbt.org/release/docs/Detailed-Topics/index
  3. http://harrah.github.com/xsbt/latest/sxr/Keys.scala.html
  4. http://harrah.github.com/xsbt/latest/sxr/Defaults.scala.html

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

способ, которым я использую sbt:

  1. использовать sbt-экстры - просто сделать скрипт и добавить его в корень проекта
  2. создайте папку проекта с MyProject.файл scala для настройки sbt. Я очень предпочитаю это над сборкой.sbt подход - его scala и является более гибким
  3. создать проект/Плагины.sbt файл и добавить соответствующий плагин для вашей IDE. Либо sbt-eclipse, sbt-idea, либо ensime-sbt-cmd, чтобы вы могли создавать проект файлы для eclipse, intellij или ensime.
  4. запустите sbt в корне вашего проекта и создайте файлы проекта для вашей IDE
  5. прибыль

Я не беспокоюсь о проверке файлов проекта IDE, поскольку они генерируются sbt, но могут быть причины, по которым вы хотите это сделать.

вы можете увидеть пример настройки такой здесь.

используйте 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)