Подтвердить что ты не робот

Как распознать зависимости Eclipse от SBT

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

спасибо

4b9b3361

Ответ 1

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

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

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

Желаем удачи, Andy

Ответ 2

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

перезарядка
eclipse with-source = true

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

Ответ 3

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

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

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

В Eclipse в разделе Project/Properties - Java Build Path - Libraries щелкните "Добавить библиотеку" и выберите "IvyDE Managed Dependencies", затем выберите файл цели / scala -2.9.1/ivy-projectversion.xml

При добавлении новой зависимости в build.sbt снова запустите команды sbt reload и deliver-local. Затем щелкните правой кнопкой мыши библиотеку Ivy для вашего проекта в Проводнике пакетов - он будет называться "target/scala -2.9.1/ivy-projectversion.xml [компиляция, тест]" и нажмите второе меню "Обновить" item (между "Обновить" и "Обновить настройки", а не "F5 Refresh" ).

Ответ 4

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

sbt eclipse

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

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

Ответ 5

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

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.

Ответ 6

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

sbt "eclipse with-source=true"

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

eclipse with-source=true

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