web-dev-qa-db-fra.com

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

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

merci

55
chiappone

Ce n'est probablement pas la réponse que vous recherchez et j'avoue que ce n'est pas élégant mais cela fonctionne actuellement pour moi, ce qui signifie que je pense qu'il me faut moins de temps pour faire périodiquement ce qui suit au lieu de rechercher 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 est que j'ai un projet à plusieurs modules et après avoir actualisé les projets dans Eclipse, j'ai besoin de rajouter les dépendances inter-projets dans l'éditeur de chemin de génération Eclipse.

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

Bonne chance, Andy

32
Andrew

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

recharger
Eclipse avec source = true

Ensuite, dans Eclipse, appuyez sur F5 sur un dossier de projet pour le rafraîchir. Ou faites un clic droit et choisissez "Actualiser". Fonctionne juste.

87
Arty

J'utilise le plugin Apache IvyDE pour Eclipse, et j'ai eu plus de chance avec cette approche. C'est seulement décrit dans les anciens documents 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 créera un fichier XML Ivy de vos dépendances.

Dans Eclipse, sous votre projet/propriétés - Java Build Path - Libraries, cliquez sur "Add Library" et choisissez "IvyDE Managed Dependencies" 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 et deliver-local encore. Cliquez ensuite avec le bouton droit sur la bibliothèque Ivy de votre projet dans l'explorateur de packages - elle s'appellera "target/scala-2.9.1/ivy - version du projet . xml [compiler, tester] ", et cliquez sur le deuxième élément de menu" Actualiser "(entre" Actualiser "et" Paramètres de rechargement "- pas " F5 Actualiser ").

14
cathalmcginley

Dans l'invite de commande, accédez au dossier du projet et tapez

sbt Eclipse

Cela devrait générer les entrées . Classpath appropriées dans le projet Eclipse.

Revenez à Eclipse, sélectionnez le projet et appuyez sur f5, cela rechargera les bibliothèques référencées.

7
aspdeepak

Il vous suffit d'exécuter à partir de la maison de votre projet:

sbt "Eclipse with-source=true"

ou entrez sbt console et écrivez:

Eclipse with-source=true

BTW: Je ne sais pas si depuis janvier 2012 quelque chose a changé mais maintenant cela semble beaucoup plus simple.

1
freedev

Ce qui suit fonctionne pour moi:

1) Fermer le projet dans Eclipse

2) dans mon explorateur de fichiers, accédez à mon projet Eclipse, assurez-vous que les fichiers cachés sont visibles

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

4) copiez 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) accédez à mon dossier .ivy, cache, puis vers le bas à la bibliothèque que j'ai ajoutée via sbt

6) faites un clic droit sur le fichier jar, sélectionnez les propriétés, copiez le chemin et le nom du fichier jar et remplacez-le dans l'entrée que j'ai copiée à l'étape 4

7) Enregistrer .classpath

8) ouvrir mon projet sur Eclipse

Une nouvelle dépendance est désormais disponible dans Eclipse.

0
FreewheelNat