55 votes

Comment faire en sorte qu'Eclipse reconnaisse les dépendances du SBT ?

J'essaie de comprendre comment faire en sorte qu'Eclipse reconnaisse les dépendances qui sont récupérées en utilisant SBT ? SBT télécharge les dépendances correctes et les place dans mon répertoire ~/.ivy mais Eclipse ne les voit pas. Existe-t-il un moyen de faire cela ?

merci

86voto

Arty Points 1174

Si vous utilisez le plugin sbteclipse, c'est réalisable de manière simple. Dans le type sbt :

recharger
eclipse with-source=true

Puis dans eclipse, appuyez sur F5 sur un dossier de projet pour le rafraîchir. Ou bien faites un clic droit et choisissez "Rafraîchir". Cela fonctionne.

32voto

Andrew Points 221

Ce n'est probablement pas la réponse que vous cherchez et j'admets qu'elle n'est pas élégante mais elle fonctionne actuellement pour moi, c'est-à-dire que je pense que cela me prend moins de temps de faire périodiquement ce qui suit au lieu de chercher et de trouver une solution plus élégante.

Je suppose que vous utilisez le plugin sbt-eclipse ( https://github.com/typesafehub/sbteclipse ). Lorsque j'ajoute de nouvelles dépendances à mon projet (ce qui est en fait assez rare), je régénère simplement mes fichiers de projet Eclipse à partir du plugin. L'inconvénient de cette méthode est que j'ai un projet à modules multiples et qu'après avoir rafraîchi les projets dans Eclipse, je dois ajouter à nouveau les dépendances inter-projets dans l'éditeur de chemin de construction d'Eclipse.

Comme je l'ai dit, c'est assez compliqué, mais dans l'ensemble, je ne perds pas beaucoup de temps à le faire. Ce n'est pas joli mais ça marche.

Bonne chance, Andy

14voto

cathalmcginley Points 61

J'utilise le Apache IvyDE pour Eclipse, et j'ai eu plus de chance avec cette approche. C'est seulement décrite dans l'ancienne documentation de sbt mais fonctionne avec sbt 0.11

Tout d'abord, installez le plugin IvyDE dans Eclipse et redémarrez.

Exécutez la commande sbt deliver-local - cela va créer un fichier XML ivy de vos dépendances.

Dans Eclipse, sous votre Projet/Propriétés - Chemin de construction Java - Bibliothèques, cliquez sur "Ajouter une bibliothèque" et choisissez "Dépendances gérées par IvyDE" puis sélectionnez le fichier target/scala-2.9.1/ivy-. version du projet .xml

Lorsque vous ajoutez une nouvelle dépendance à build.sbt, exécutez les commandes sbt reload y deliver-local à nouveau. Ensuite, faites un clic droit sur la bibliothèque Ivy de votre projet dans l'explorateur de paquets - elle s'appellera "target/scala-2.9.1/ivy-". version du projet .xml [compile,test]", puis cliquez sur le deuxième élément de menu "Rafraîchir" (entre "Rafraîchir" et "Recharger les paramètres"). pas "F5 Refresh" ).

7voto

aspdeepak Points 47

Dans l'invite de commande, allez dans le dossier du projet et tapez

sbt eclipse

Cela devrait générer le .classpath dans le projet Eclipse.

Retournez dans eclipse, sélectionnez le projet et appuyez sur f5 cela rechargera les librairies référencées.

0voto

FreewheelNat Points 989

Ce qui suit fonctionne pour moi :

1) fermer le projet dans Eclipse

2) dans mon explorateur de fichiers, naviguez jusqu'à mon projet Eclipse, assurez-vous que les fichiers cachés sont visibles.

3) ouvrir .classpath dans un simple éditeur de texte

4) copier l'entrée du bas. Par exemple, dans mon projet actuel, c'est <classpathentry path="/home/natalie/.ivy2/cache/org.scalatest/scalatest_2.9.1/jars/scalatest_2.9.1-1.8.jar" kind="lib"></classpathentry>

5) naviguez jusqu'à mon dossier .ivy, cache, puis jusqu'à la bibliothèque que j'ai ajoutée via sbt

6) cliquez avec le bouton droit de la souris sur le fichier jar, sélectionnez les propriétés, copiez le chemin et le nom du fichier jar et remplacez-les dans l'entrée que j'ai copiée à l'étape 4.

7) sauvegarder .classpath

8) ouvrir mon projet sur Eclipse

La nouvelle dépendance est maintenant disponible dans Eclipse.

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