101 votes

Quelqu'un peut-il expliquer s’il vous plaît la bonne façon d’utiliser SBT ?

Je suis hors de la penderie! Je ne comprends pas SBT. Là, je l'ai dit, maintenant m'aider s'il vous plaît.

Tous les chemins mènent à Rome, et qui est la même pour SBT: Pour commencer avec SBT n'est SBT, SBT Launcher, SBT-extras, etc, et puis il y a différentes façons d'inclure et de décider sur les référentiels. Est-il un "meilleur"?

Je demande parce que parfois je suis un peu perdu. Le TRIBUNAL de la documentation est très complet et approfondi, mais je me retrouve à ne pas savoir quand utiliser l' build.sbt ou project/build.properties ou project/Build.scala ou project/plugins.sbt.

Ensuite, cela devient amusant, il y a l' Scala-IDE et SBT - Quelle est la bonne façon de les utiliser ensemble? Ce qui vient en premier, l'œuf ou la poule?

Le plus important est probablement, comment trouvez-vous les référentiels et les versions à inclure dans votre projet? Dois-je viens de sortir d'une machette et de commencer le piratage de ma façon de faire? Je suis assez souvent de trouver des projets qui comprennent tout et l'évier de la cuisine, et puis je me rends compte - que je ne suis pas le seul qui a un peu perdu.

Comme un exemple simple, en ce moment, je commence un nouveau projet. Je veux utiliser les dernières fonctionnalités de l' SLICK et Scala et cela prendra probablement la version la plus récente de la SBT. Qu'est-ce que la sane point de commencer, et pourquoi? Dans quel fichier dois-je définir et comment faut-il la chercher? Je sais que je peux le faire fonctionner, mais je voudrais vraiment un avis d'expert sur l'endroit où tout devrait aller (pourquoi ça devrait aller, il y aura un bonus).

J'ai été en utilisant SBT pour les petits projets de plus d'un an maintenant. J'ai utilisé SBT puis SBT Extras (comme il a fait quelques maux de tête disparaissent comme par magie), mais je ne sais pas pourquoi je devrais être à l'aide de l'un ou de l'autre. Je suis juste un peu frustré de ne pas comprendre comment les choses s'articulent (SBT et dépôts), et pense qu'il va sauver le gars à côté, provenant de cette manière beaucoup de difficultés si ceci pourrait être expliqué en termes humains.


Mise à JOUR:

Pour ce que ça vaut, j'ai créé un vide SBT répertoire de projet pour les nouveaux gars pour aller plus vite: SBT-jumpstart

30voto

huynhjl Points 26045

Le plus important est probablement, comment trouvez-vous les référentiels et les versions à inclure dans votre projet? Dois-je viens de sortir d'une machette et de commencer le piratage de ma façon de faire? Je suis assez souvent de trouver des projets qui comprennent tout et l'évier de la cuisine

Pour Scala à base de dépendances, je voudrais aller avec ce que les auteurs recommandent. Par exemple: http://code.google.com/p/scalaz/#SBT indique qu'il faut utiliser:

libraryDependencies += "org.scalaz" %% "scalaz-core" % "6.0.4"

Ou https://github.com/typesafehub/sbteclipse/ contient des instructions sur l'endroit où ajouter:

addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.1.0-RC1")

Pour Java basée sur les dépendances, j'utilise http://mvnrepository.com/ pour voir ce qu'il y a, puis cliquez sur le SBT onglet. Par exemple http://mvnrepository.com/artifact/net.sf.opencsv/opencsv/2.3 indique qu'il faut utiliser:

libraryDependencies += "net.sf.opencsv" % "opencsv" % "2.3"

Puis sortir la machette et de commencer le piratage de votre façon de progresser. Si vous avez de la chance de ne pas utiliser des pots qui repose sur les mêmes pots mais avec des versions incompatibles. Compte tenu de l'écosystème Java, vous finissent souvent tout compris, et l'évier de la cuisine et il faut un certain effort pour éliminer les dépendances ou de vous assurer de ne pas manquer les dépendances nécessaires.

Comme un exemple simple, en ce moment, je commence un nouveau projet. Je veux utiliser les dernières fonctionnalités de la NAPPE et de la Scala et cela prendra probablement la version la plus récente de la SBT. Qu'est-ce que la sane point de commencer, et pourquoi?

Je pense que le sane point est de construire une immunité à la sbt progressivement.

Assurez-vous de comprendre:

  1. les étendues de format {<build-uri>}<project-id>/config:key(for task-key)
  2. les 3 saveurs de paramètres (SettingKey, TaskKey, InputKey) - lisez la section intitulée "groupe de Touches" dans http://www.scala-sbt.org/release/docs/Getting-Started/Basic-Def

Garder ces 4 pages ouvertes en tout temps, de sorte que vous pouvez sauter et rechercher des diverses définitions et exemples:

  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

Faire une utilisation maximale de l' show et inspect et l'onglet achèvement de se familiariser avec les valeurs réelles des paramètres, leurs dépendances, les définitions et les paramètres associés. Je ne crois pas que les relations que vous découvrirez à l'aide de inspect sont documentées n'importe où. Si il ya une meilleure façon que je veux le savoir.

26voto

Channing Walton Points 1444

La façon dont j'utilise sbt est:

  1. utilisation sbt-extras - il suffit de prendre le script shell et l'ajouter à la racine de votre projet
  2. Créer un dossier de projet avec un MyProject.scala fichier de configuration de sbt. Je préfère de beaucoup cette plus de le construire.sbt à l'approche de ses scala et est plus souple
  3. Créer un projet/plugins.sbt fichier et ajouter le plugin adéquat pour votre IDE. Soit sbt-eclipse, sbt-idée ou ensime-sbt-cmd de sorte que vous pouvez générer des fichiers de projet pour eclipse, intellij ou ensime.
  4. Lancement sbt dans la racine de votre projet et de générer les fichiers de projet pour votre IDE
  5. Résultat

Je n'ai pas pris la peine de vérifier dans l'IDE fichiers de projet puisqu'ils sont générés par sbt, mais il peut y avoir des raisons pour lesquelles vous voulez faire.

Vous pouvez voir un exemple comme celui - .

0voto

Andreas Neumann Points 1472

Utiliser l’activateur de type sécurisé, une façon élégante de sbt appelant, qui est livré avec des modèles de projet et graines : https://typesafe.com/activator

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X