Я пытаюсь выяснить, как заставить Eclipse распознавать зависимости, которые извлекаются с помощью SBT? SBT загружает правильные зависимости и помещает их в каталог ~/.ivy, но eclipse их не видит. Есть ли способ сделать это?
спасибо
Я пытаюсь выяснить, как заставить Eclipse распознавать зависимости, которые извлекаются с помощью SBT? SBT загружает правильные зависимости и помещает их в каталог ~/.ivy, но eclipse их не видит. Есть ли способ сделать это?
спасибо
Это, вероятно, не тот ответ, который вы ищете, и я признаю, что он не изящный, но в настоящее время он работает для меня, а это значит, что я считаю, что для меня требуется меньше времени, чтобы периодически делать следующее, а не исследовать и находить более элегантные решение.
Я предполагаю, что вы используете плагин sbt-eclipse (https://github.com/typesafehub/sbteclipse). Когда я добавляю новые зависимости к моему проекту (что на самом деле довольно редко), я просто регенерирую свои файлы проекта eclipse из плагина. Недостатком этого является то, что у меня есть проект с несколькими модулями, и после обновления проектов в eclipse мне нужно повторно добавить зависимости между проектами в редакторе путей построения eclipse.
Как я уже упоминал, он довольно хакен, но в целом я действительно не теряю столько времени на это. Это не очень, но это работает.
Желаем удачи, Andy
Если вы используете плагин sbteclipse, это можно выполнить простым способом. В sbt-типе:
перезарядка
eclipse with-source = true
Затем в eclipse нажмите F5 в папке проекта, чтобы обновить его. Или щелкните правой кнопкой мыши и выберите "Обновить". Просто работает.
Я использую плагин 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" ).
В командной строке перейдите в папку проекта и введите
sbt eclipse
Это должно сгенерировать соответствующие записи .classpath в проекте eclipse.
Вернитесь к затмению, выберите проект и нажмите f5, это перезагрузит ссылки, на которые ссылаются.
Для меня работает следующее:
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.
Все, что вам нужно, это выполнить из дома вашего проекта:
sbt "eclipse with-source=true"
или введите sbt
консоль и напишите:
eclipse with-source=true
Кстати: я не знаю, изменилось ли с января '12, но теперь это кажется намного более простым.