Как Eclipse распознает зависимости от SBT - PullRequest
55 голосов
/ 31 января 2012

Я пытаюсь выяснить, как заставить Eclipse распознавать зависимости, которые извлекаются с помощью SBT?SBT загружает правильные зависимости и помещает их в мой каталог ~ / .ivy, но eclipse их не видит.Есть ли способ сделать это?

спасибо

Ответы [ 6 ]

87 голосов
/ 07 декабря 2012

Если вы используете плагин sbteclipse, это достижимо простым способом.В sbt введите:

reload
eclipse with-source = true

Затем в eclipse нажмите F5 в папке проекта, чтобы обновить его.Или щелкните правой кнопкой мыши и выберите «Обновить».Просто работает.

32 голосов
/ 31 января 2012

Это, вероятно, не тот ответ, который вы ищете, и я признаю, что он не элегантный, но в настоящее время он работает для меня, а это означает, что я думаю, что мне требуется меньше времени, чтобы периодически делать следующее, вместо того, чтобы исследовать и находить более элегантныйрешение.

Я предполагаю, что вы используете плагин sbt-eclipse (https://github.com/typesafehub/sbteclipse).Когда я добавляю новые зависимости в свой проект (что на самом деле довольно редко), я просто восстанавливаю файлы своего проекта eclipse из плагина.Недостатком этого является то, что у меня есть проект с несколькими модулями, и после того, как я обновлю проекты в eclipse, мне нужно заново добавить межпроектные зависимости в редакторе пути сборки eclipse.

Как я уже говорил, это довольно глупо, но в целом я действительно не теряю столько времени на это.Это не красиво, но работает.

Удачи, Энди

14 голосов
/ 01 февраля 2012

Я использую Apache IvyDE плагин для Eclipse, и мне больше повезло с этим подходом. Это только , описанное в старых документах sbt , но работает с sbt 0.11

Сначала установите плагин IvyDE в Eclipse и перезапустите.

Запустите команду sbt deliver-local - это создаст XML-файл плюща ваших зависимостей.

В Eclipse в разделе «Проект / Свойства - Путь сборки Java - Библиотеки» нажмите «Добавить библиотеку» и выберите «Управляемые зависимости IvyDE», затем выберите целевой файл / scala-2.9.1 / ivy- projectversion .xml

Когда вы добавляете новую зависимость в build.sbt, снова запускайте команды sbt reload и deliver-local. Затем щелкните правой кнопкой мыши библиотеку Ivy для вашего проекта в Package Explorer - она ​​будет называться «target / scala-2.9.1 / ivy- projectversion .xml [compile, test]» и щелкните второй Пункт меню «Обновить» (между «Обновить» и «Настройки перезагрузки» - , а не «F5 Обновить»).

7 голосов
/ 13 января 2014

В командной строке перейдите в папку проекта и введите

sbt eclipse

Это должно сгенерировать соответствующие .classpath записи в проекте eclipse.

Вернитесь к затмению, выберите проект и нажмите f5 , это перезагрузит ссылочные библиотеки.

1 голос
/ 13 марта 2017

Все, что вам нужно, это выполнить из вашего проекта дома:

sbt "eclipse with-source=true"

или ввести sbt консоль и написать:

eclipse with-source=true

Кстати: я не знаю, с января'12 что-то изменилось, но теперь это кажется намного проще.

0 голосов
/ 09 мая 2013

У меня работает следующее:

1) закрыть проект в Eclipse

2) в моем файловом обозревателе перейдите к моему проекту Eclipse, убедитесь, что скрытые файлы видны

3) открыть .classpath в простом текстовом редакторе

4) скопировать нижнюю запись. Например, в моем текущем проекте это <classpathentry path="/home/natalie/.ivy2/cache/org.scalatest/scalatest_2.9.1/jars/scalatest_2.9.1-1.8.jar" kind="lib"></classpathentry>

5) перейдите в мою папку .ivy, кеш, затем вниз в библиотеку, которую я добавил через sbt

6) щелкните правой кнопкой мыши по файлу jar, выберите свойства, скопируйте путь и имя файла jar и замените его в записи, скопированной на шаге 4

7) сохранить .classpath

8) открыть мой проект на Eclipse

Новая зависимость теперь доступна в Eclipse.

...