web-dev-qa-db-fra.com

Comment créer un projet SBT avec IntelliJ Idea?

Je viens tout juste de commencer à développer Scala/LiftWeb/Sbt et j'aimerais importer un projet Sbt dans IntelliJ Idea . En fait, j'ai réussi à importer mon projet de deux manières différentes:

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

2) avec Eclipse. J'ai donc créé un nouveau projet Sbt (avec un petit script que j'ai écrit, configurant le projet Sbt pour qu'il soit un projet Web). J'ai ensuite utilisé le plug-in 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 parviens pas à faire fonctionner le plugin IntelliJ Sbt. 

Est-ce que quelqu'un peut m'aider avec ça?

143
ksemeks

Il existe trois méthodes de base pour créer un projet: les versions modernes d’IntelliJ peuvent importer un projet sbt tel quel, sinon vous pouvez utiliser le plug-in sbt pour générer un projet IntelliJ ou utiliser IntelliJ Scala pour créer sbt. projet. Les fonctionnalités de base fonctionnent immédiatement avec les deux solutions. Certaines versions complexes peuvent poser des problèmes. Essayez donc avec d'autres outils pour voir si cela fonctionne.

IntelliJ

IntelliJ IDEA est devenu tellement meilleur ces jours-ci. La version actuelle (14.0.2) prend en charge les projets sbt prêts à l'emploi avec le plug-in Scala. Installez simplement le plugin et vous devriez pouvoir ouvrir des projets Scala/sbt sans aucun problème.

Scala plugin under Plugins in Preferences

Avec le plugin, pointez simplement sur un projet sbt et IDEA vous proposera un assistant pour ouvrir ce type de projet.

Import sbt project

IntelliJ Scala Plugin

Le plugin IntelliJ peut être trouvé ici http://confluence.jetbrains.com/display/SCA/Scala+Plugin+for+IntelliJ+IDEA ou peut être installé directement à partir de la IDE en utilisant la boîte de dialogue Paramètres -> Plugins. Ensuite, vous pouvez simplement créer Fichier -> Nouveau projet -> Scala -> SBT. IntelliJ générera le build.sbt de base, téléchargera les dépendances nécessaires et ouvrira 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 +

Ajoutez simplement 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éez et ajoutez les lignes suivantes à ~/.sbt/plugins/build.sbt OR PROJECT_DIR/project/plugins.sbt

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

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

Utilisez gen-idea dans sbt pour créer les fichiers de projet IDEA.

Par défaut, les classificateurs (c.-à-d. Sources et javadocs) des dépendances sbt et library sont chargés s'ils sont trouvés et les références ajoutées aux fichiers IDEA. Si vous ne souhaitez pas les télécharger/les référencer, 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éez et ajoutez les lignes suivantes à ~/.sbt/plugins/build.sbt:

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

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

Utilisez la tâche gen-idea sbt pour créer les fichiers de projet IDEA.

Par défaut, les classificateurs (c.-à-d. Sources et javadocs) des dépendances sbt et library sont chargés s'ils sont trouvés et les références ajoutées aux fichiers IDEA. Si vous ne souhaitez 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 depuis votre shell sbt, il utilisera le plugin comme programme externe:

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

Vous pouvez également ajouter un trait à votre définition de projet, comme vous le souhaitez:

import sbt._
class MyProject(info: ProjectInfo) extends ParentProject(info) with IdeaProject {
  lazy val mySubProject = project("my-subproject", "my-subproject", new DefaultProject(_) with IdeaProject)
   // ...
}
170
Steve Gury

Pour l'instant je le fais à la main. C'est assez simple.

  1. Créer le projet avec SBT
  2. Créer un nouveau projet IDEA avec le même chemin racine
  3. Créer un module avec le même chemin racine
  4. Définissez src/main/scala en tant que chemin src sur le module
  5. Définissez src/test/scala en tant que chemin de test sur le module
  6. Ajouter scala-library.jar en tant que bibliothèque
  7. Ajoutez lib (s'il est présent) en tant que répertoire jar dans une bibliothèque de modules
  8. Ajoutez lib_managed/compile (s'il est présent) en tant que répertoire jar dans une bibliothèque de modules
  9. Ajoutez lib_managed/test (s'il est présent) en tant que répertoire jar dans une bibliothèque de modules

C'est ça de mémoire. Ce serait mieux s'il était automatisé, mais ce n'est pas grave comme c'est le cas maintenant.

Attention: l’approche ci-dessus ne fonctionne pas bien avec sbt new-school, c’est-à-dire les versions 0.10 et plus récentes, car elle ne copie pas les dépendances dans lib_managed par défaut. Vous pouvez ajouter 

retrieveManaged := true

à votre build.sbt pour qu’il copie les dépendances dans lib_managed.

11
Synesso

_ {Tempus fugit} et IntelliJ IDEA sont devenus tellement meilleurs ces jours-ci. C'est 2015 après tout, n'est-ce pas?

Ceci dit, la dernière version d’IntelliJ IDEA 14.0.2 prend en charge les projets sbt de manière standard avec le plugin Scala . Installez simplement le plugin et vous devriez pouvoir ouvrir des projets Scala/sbt sans trop de peine.

Scala plugin under Plugins in Preferences

J'utilise la version Early Access du plugin qui est 1.2.67.6.EAP au moment de l'écriture.

Avec le plugin, pointez simplement sur un projet sbt et IDEA va vous proposer un assistant pour ouvrir ce type de projet.

Import sbt project

À propos de sbt-idea in sbt 0.12.4

Pour sbt 0.12.4, le fichier de configuration du plug-in à l'échelle du système - ~/.sbt/plugins/build.sbt ou PROJECT_DIR/project/plugins.sbt - devrait contenir 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écutez sbt gen-idea pour générer les fichiers de projet IDEA.

Lisez le site Web du plugin sbt-idea pour des informations plus récentes. Vous pouvez également trouver mon entrée de blog Importer un projet basé sur sbt dans IntelliJ IDEA 13 (avec sbt-idea, Scala 2.11 et sbt 0.12) utile.

7
Jacek Laskowski

Pour sbt 0.7

Voir la réponse ailleurs sur cette page .

Pour sbt 0,10

Cloner et construire l'idée sbt d'Ismael:

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

Créez un répertoire sbt plugin lib si vous n'en avez pas déjà un

mkdir -p  ~/.sbt/plugins/lib

Copiez le pot construit à l'étape 1 ici

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

Redémarrez ou rechargez sbt, vous pouvez alors exécuter gen-idea (ou gen-idea with-classifiers si vous voulez aussi des sources et du javadoc dans intelliJ)

Source: Suggestion de Tackers sur le groupe de messages .

Dans 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 maintiendra vos dépendances à jour chaque fois que vous apporterez des modifications aux scripts de construction.

5
opyate

Je viens de traverser toute cette douleur. J'ai passé des jours à essayer de créer un environnement acceptable et je suis parvenu à la conclusion que ENSIME, SBT et JRebel seraient mon environnement de développement pendant un certain temps. Oui, cela revient à Emacs, mais ENSIME en fait un concept ou une idée avec le refactoring, le support de débogage, la navigation, etc. mieux nous avons.

Tant que les environnements de développement de Scala ne seront pas pris au sérieux (Eclipse ou IntelliJ), je ne vais pas m'en faire. Ils sont juste trop bogués.

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 ça marche un peu, il y a beaucoup de problèmes qui le rendent un peu moins utile.

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

2
andyczerwonka

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

Ma version de SBT est 0.13.5 (terminal: sbt sbtVersion)

Aller au dossier racine du projet et entrer dans le terminal

sbt idea

Vous verrez deux nouveaux dossiers cachés .idea et .idea_modules.

Ensuite, dans IntelliJ, Fichier> Ouvrir> sélectionnez le projet. Il devrait ouvrir le projet sans aucun problème.

2
Raymond Chenon

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

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

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

0
Prasad