2010-09-25 2 views
22

Я создал проект IntelliJ Idea SBT Scala, например, Heiko Seeberger's article.Как добавить библиотеки Jar в проект IntelliJ Idea SBT Scala?

Я хотел бы добавить библиотеку Jar (joda-time) для использования в этом проекте. Как это сделать? Простое размещение их в проекте/lib не помогает. Если я щелкнул правой кнопкой мыши «Внешние библиотеки» в дереве проектов Idea, «New>» будет greyed.

ответ

24

В окне IntelliJ Idea вашего проекта, в файле >> Структура проекта >> Библиотеки. После нажатия этой опции «Библиотеки» появятся две панели. В верхней части левой панели щелкните зеленую кнопку «+».

+5

Это не работает в версии 13.1.5. Я добавляю файл .jar. И он работает нормально до следующего раза, когда я перезапущу IntellJ, или если я модифицирую файл build.sbt. Затем он просто «исчезает». – chaotic3quilibrium

+0

То же. то же самое для меня –

6

В IntelliJ Idea:

  • Файл> Структура проекта> Библиотеки

В Netbeans:

  • Файл> Свойства проекта> Библиотеки

В Eclipse:

  • Щелкните правой кнопкой мыши проект> Свойства> Java Build Path> Библиотеки
+0

Добавление jar-файлов в build.sbt - лучший вариант, я думаю. – Daniel

9

Лучший способ сделать это, чтобы добавить ваши неуправляемые зависимости вашему build.sbt и не оставляй часть вашего управления зависимостями для ты едешь.

Подробнее о том, как определить неуправляемые базы и неуправляемые задачи, см. В разделе http://www.scala-sbt.org/release/docs/Library-Management.html.

+0

папка lib автоматически добавляется в unmanagedJars, поддерживается ли это IDEA? – Edmondo1984

+0

Да, идея просматривает библиотеки, отмеченные в неуправляемых играх, и делает всю навигацию/подсветку правильно. Если вы имеете в виду сборки, Idea использует сам Sbt (в комплекте или внешний) для создания проектов Sbt, поэтому им не нужно ничего лишнего для поддержки этого. – mcyalcin

5

Просто Объявите это в build.sbt

unmanagedJars in Compile += file(Path.userHome+"/Your-Jar-Path/Full-Jar-Name.jar") 

и требуется баночка появится внешняя библиотека> неуправляемой-банка> Full-Jar-Name.jar. Это также изменится, если файл jar (в предоставленном пути) будет изменен.

0

Для многомодульного проекта SBT (Intellij 2017.3.4, Scala 12.2.4, sbt 1.1.1) принятое решение работает только до перезапуска или обновления проекта. Действительно, «Настройки проекта -> Модули -> Зависимости», затем «+» и «JARs или каталоги» выдает предупреждение «Модуль X импортируется из Sbt. Любые изменения, внесенные в его конфигурацию, могут быть потеряны после реимпорта».

Возможные обходной:
Предположение @zero работал для меня следующим образом:

  1. Поместите БАНКУ (ы) в lib каталог проекта.
  2. В build.sbt, внутри lazy var baseSettings = Seq(...) добавить строку unmanagedJars in Compile += file("YourPath/ProjectBla/lib/controlsfx-8.40.14.jar").
  3. По-прежнему не повезло?В окне SBT инструмента, в SBT настройки соответствующего модуля под unmanagedBase, unmanagedSourceDirectories (и тому подобное), попробуйте вызвать всплывающие команды «Показать значение» и «Осмотреть» несколько раз. Так или иначе, это может сработать.

    От ответа Евгения Йокоты к How can I add unmanaged JARs in sbt-assembly to the final fat JAR? другому варианту (который я не пробовал), чтобы добавить отдельный lib каталог для каждого требуемого модуля.

Надеемся, что эти шаги помогут решить проблему или, по крайней мере, помогут отладить.

Смежные вопросы