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


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

спасибо

6 55

6 ответов:

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

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

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

удачи, Энди

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

перезагрузка
затмение с-source=true

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

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

во-первых, установите плагин IvyDE в Eclipse и перезапустите.

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

в Eclipse, в разделе ваш проект / свойства-путь сборки Java-библиотеки, нажмите кнопку "добавить библиотеку" и выберите " IvyDE Управляемые зависимости " затем выберите файл target/scala-2.9.1/ivy - projectversion.xml

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

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

sbt eclipse

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

вернитесь в 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) сохранить .путь к классу

8) откройте Мой проект на Eclipse

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

все, что вам нужно-это исполнять из своего дома:

sbt "eclipse with-source=true"

или введите