Comment créer un projet SBT avec IntelliJ idée?

je viens de commencer avec le développement de Scala/LiftWeb/Sbt, et j'aimerais importer un projet Sbt dans IntelliJ idée. En fait, j'ai réussi à importer mon projet de deux façons différentes:

1) avec Maven. J'ai créé un projet Maven, et de plus j'ai créé un projet Sbt, que j'ai ensuite importé dans IntelliJ. Je pourrais facilement démarrer, arrêter le serveur jetty, et faire d'autres choses. Mais ce n'est pas ce que je veux. Je veux faire la même chose, juste Maven-gratuit. Cela m'a conduit à

2) avec éclipse. Donc, j'ai créé un nouveau projet Sbt (avec un petit script que j'ai écrit, configurant le projet Sbt pour être un projet web). J'ai ensuite utilisé le plugin sbt-eclipsify pour "convertir" le projet pour Eclipse, que j'ai ensuite importé dans IntelliJ (source existante -> eclipse). Mais les problèmes ont commencé ici: Je ne peux pas faire fonctionner le plugin IntelliJ Sbt.

quelqu'un Peut-il m'aider?

142
demandé sur Leif Wickland 2010-11-23 00:18:16

7 réponses

il y a trois façons de créer un projet - les versions modernes D'IntelliJ peuvent importer le projet sbt de la boîte, sinon vous pouvez soit utiliser le plugin sbt pour générer le projet IntelliJ, ou utiliser IntelliJ Scala plugin pour créer le projet sbt. Les fonctionnalités de base fonctionnent en utilisant les deux solutions, certaines constructions complexes peuvent avoir des problèmes, alors essayez d'autres outils pour voir si cela fonctionne là.

IntelliJ

IntelliJ idée est devenue tellement mieux ces jours-ci. La version actuelle (14.0.2) supporte les projets sbt avec le plugin Scala. Il suffit d'installer le plugin et vous devriez être en mesure d'ouvrir les projets Scala/sbt sans aucun problème.

Scala plugin under Plugins in Preferences

avec le plugin, il suffit de pointer vers un projet sbt et IDEA va vous offrir un assistant pour ouvrir ce genre de projet.

Import sbt project

IntelliJ Scala Plugin

IntelliJ plugin peut être trouvé ici http://confluence.jetbrains.com/display/SCA/Scala+Plugin+for + IntelliJ+IDEA ou peut être installé directement depuis L'IDE en utilisant la boîte de dialogue Paramètres -> Plugins. Ensuite, on peut simplement faire Fichier - > Nouveau projet - > Scala - > SBT basé. IntelliJ générera la construction de base.sbt, téléchargez les dépendances nécessaires et ouvrez le projet.

SBT Plugin

le plugin Sbt qui génère un projet d'idée basé sur les fichiers sbt peut être trouvé ici: https://github.com/mpeltonen/sbt-idea

SBT 12.0+ & 13.0+

il suffit D'ajouter addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.5.2") à votre build.sbt ; aucun résolveur supplémentaire n'est nécessaire.

Versions Plus Anciennes:

SBT 0.11+

créer et ajouter les lignes suivantes à ~/.sbt/plugins/build.sbt ou PROJECT_DIR/project/plugins.sbt

resolvers += "sbt-idea-repo" at "http://mpeltonen.github.com/maven/"

addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.6.0")

utiliser gen-idea dans sbt pour créer des fichiers de projet IDEA.

par défaut, les classificateurs (c.-à-d. sources et javadocs) des dépendances sbt et bibliothèque sont chargés s'ils sont trouvés et les références ajoutées aux fichiers de projet IDEA. Si vous ne voulez pas les télécharger, utilisez la commande gen-idea no-classifiers no-sbt-classifiers .


SBT 0.10.1 (selon l'auteur du plugin, 0.10.0 ne fonctionnera pas !)

Créer et ajouter les lignes suivantes dans ~/.sbt/plugins / build.sbt:

resolvers += "sbt-idea-repo" at "http://mpeltonen.github.com/maven/"

libraryDependencies += "com.github.mpeltonen" %% "sbt-idea" % "0.10.0"

Utiliser gen-idea sbt tâche pour créer l'IDÉE de fichiers de projet.

par défaut, les classificateurs (c.-à-d. sources et javadocs) des dépendances sbt et bibliothèque sont chargés s'ils sont trouvés et les références ajoutées aux fichiers de projet IDEA. Si vous vous ne voulez pas les télécharger / les référencer, utilisez la commande gen-idea no-classifiers no-sbt-classifiers .


SBT 0.7

pour l'utiliser, lancez simplement ceci à partir de votre shell sbt, il utilisera le plugin comme un programme externe:

 > *sbtIdeaRepo at http://mpeltonen.github.com/maven/
 > *idea is com.github.mpeltonen sbt-idea-processor 0.4.0
 ...
 > update
 ...
 > idea
 ...

vous pouvez aussi ajouter trait dans votre définition de projet, comme vous voulez:

import sbt._
class MyProject(info: ProjectInfo) extends ParentProject(info) with IdeaProject {
  lazy val mySubProject = project("my-subproject", "my-subproject", new DefaultProject(_) with IdeaProject)
   // ...
}
169
répondu Steve Gury 2015-03-03 03:49:06

pour l'instant je le fais à la main. Il est assez simple.

  1. créer le projet avec SBT
  2. créer un nouveau projet D'idée avec le même chemin racine
  3. créer un module avec le même chemin racine
  4. définir src / main / scala comme un chemin src sur le module
  5. mettre src / test / scala comme parcours d'essai sur le module
  6. ajouter scala-library.bocal comme une bibliothèque
  7. ajouter lib (si elle est présente) comme un répertoire jar dans une bibliothèque de modules
  8. ajouter lib_managed/compiler (si elle est présente) comme un répertoire jar dans une bibliothèque de modules
  9. ajouter lib_managed / test (s'il est présent) comme répertoire jar dans une bibliothèque de modules

C'est tout de mémoire. Il serait mieux si elle était automatisé, mais c'est pas grave, comme il est maintenant.

Une note de prudence: L' l'approche ci-dessus ne fonctionne pas bien avec la nouvelle école sbt, c'est-à-dire les versions 0.10 et plus récente, parce qu'elle ne copie pas les dépendances dans lib_managed par défaut. Vous pouvez ajouter

retrieveManaged := true

à votre taille.sbt à faire copier les dépendances dans lib_managed.

11
répondu Synesso 2011-07-23 00:01:40

Tempus fugit et IntelliJ idée est devenue tellement mieux ces jours-ci. On est en 2015 après tout, n'est-ce pas?

cela dit, la dernière version de IntelliJ IDEA 14.0.2 supporte les projets sbt avec le plugin Scala . Il suffit d'installer le plugin et vous devriez être en mesure d'ouvrir les projets Scala/sbt sans trop de problèmes.

Scala plugin under Plugins in Preferences

j'utilise la version Early Access du plugin qui est 1.2.67.6.Le protocole EAP comme du temps de l'écriture.

avec le plugin il suffit de pointer vers un projet sbt et IDEA va vous offrir un assistant pour ouvrir ce genre de projet.

Import sbt project

à propos de sbt-idea in sbt 0.12.4

Pour sbt 0.12.4 à l'échelle du système fichier de configuration du plugin - ~/.sbt/plugins/build.sbt ou PROJECT_DIR/project/plugins.sbt - doit avoir les lignes suivantes:

resolvers += "Sonatype snapshots" at "http://oss.sonatype.org/content/repositories/snapshots/"

addSbtPlugin(dependency="com.github.mpeltonen" % "sbt-idea" % "1.5.0-SNAPSHOT")

Exécuter sbt gen-idea générer de l'IDÉE de projet fichiers.

Lire le tribunal de l'idée de plugin site pour les plus up-to-date information. Vous pouvez également trouver mon entrée de blog importation projet basé sur sbt pour IntelliJ idée 13 (avec sbt-idea, Scala 2.11 et sbt 0.12) utile.

6
répondu Jacek Laskowski 2015-01-22 20:02:29

pour sbt 0.7

voir la réponse ailleurs sur cette page .

pour sbt 0.10

Clone et construire Ismael du sbt-idée:

git clone https://github.com/ijuma/sbt-idea.git
cd sbt-idea
git checkout sbt-0.10
./sbt package

créer un plugin sbt lib directory si vous n'en avez pas déjà un

mkdir -p  ~/.sbt/plugins/lib

copier le bocal construit dans la première étape dans Ici

cp sbt-idea/target/scala-2.8.1.final/*.jar ~/.sbt/plugins/lib

redémarrez ou rechargez sbt, puis vous pouvez lancer gen-idea (ou gen-idea with-classifiers si vous voulez sources et javadoc dans intelliJ aussi)

Source: suggestion de Tackers sur le groupe de messages .

in IntelliJ IDEA 13.x lui-même

vous pouvez ouvrir un projet basé sur SBT dans IDEA de nos jours. Il créera le projet et les modules nécessaires, et gardera vos dépendances à jour chaque fois que vous modifiez les scripts de construction.

5
répondu opyate 2017-05-23 12:26:23

je viens de traverser toute cette douleur. J'ai passé des jours à essayer de mettre en place un environnement acceptable et je suis arrivé à la conclusion qu'ENSIME, SBT et JRebel seront mon environnement de développement pour un certain temps. Oui, il est en train de revenir à Emacs, mais ENSIME le transforme en un peu ou une idée avec refactoring, debugging support, navigation, etc. Ce n'est pas aussi bon Qu'Eclipse (Java), mais à moins que les plugins scala fonctionnent mieux, c'est le meilleur que nous ayons.

Jusqu'à ce que les environnements de développement Scala se lever à snuff (Eclipse ou IntelliJ) Je ne vais pas m'embêter. Ils sont tout simplement trop buggé.

voir la discussion sur le site de l'ascenseur.

http://groups.google.com/group/liftweb/browse_thread/thread/6e38ae7396575052#

dans ce fil, il y a un lien vers un HOWTO pour IntelliJ, mais bien que cela fonctionne un peu, il y a beaucoup de problèmes qui le rendent un peu moins que utile.

http://blog.morroni.com/2010/07/14/setup-intellij-9-for-lift-framework-development/comment-page-1 /

2
répondu andyczerwonka 2010-11-22 21:46:25

les réponses sont anciennes pour 2014. Dans IntelliJ 13.x , le plugin Scala est ver 0.41.2 ( SBT est inclus).

My SBT version is 0.13.5 (terminal: sbt sbtVersion )

aller dans le dossier racine du projet et entrer dans le terminal

sbt idea

vous verrez deux nouveaux dossiers cachés .idée et .idea_modules .

puis dans IntelliJ, Fichier > Ouvrir > sélectionner le projet. Il devrait s'ouvrir sans aucun problème.

2
répondu Raymond Chenon 2014-11-30 22:34:34

avant de commencer à créer votre projet SBT, assurez-vous que le plugin Scala est téléchargé et activé dans IntelliJ IDEA.

lien ci-dessous explique tout ce que vous devez savoir.

https://www.jetbrains.com/help/idea/2016.1/getting-started-with-sbt.html

0
répondu Prasad 2016-05-20 10:21:56