webentwicklung-frage-antwort-db.com.de

Wie füge ich Jar-Bibliotheken zu einem IntelliJ Idea SBT Scala-Projekt hinzu?

Ich habe ein IntelliJ Idea SBT Scala-Projekt erstellt, das Heiko Seebergers Artikel beschreibt.

Ich möchte eine Jar-Bibliothek (joda-time) hinzufügen, die in diesem Projekt verwendet werden soll. Wie macht man das? Es hilft nicht, sie einfach in die/lib des Projekts zu stellen. Wenn ich im Projektbaum von Idea mit der rechten Maustaste auf "Externe Bibliotheken" klicke, ist "Neu>" ausgegraut.

27
Ivan

Wechseln Sie im IntelliJ Idea-Fenster Ihres Projekts zu Datei >> Projektstruktur >> Bibliotheken. Nachdem Sie auf diese Bibliotheksoption geklickt haben, werden zwei Fenster angezeigt. Klicken Sie oben im linken Bereich auf die grüne Schaltfläche "+".

30
Ivan

Besser ist es, wenn Sie Ihre nicht verwalteten Abhängigkeiten zu build.sbt hinzufügen und keinen Teil Ihrer Abhängigkeitsverwaltung Ihrer IDE überlassen.

Unter http://www.scala-sbt.org/release/docs/Library-Management.html finden Sie Details zum Definieren Ihrer UnmanagedBase- und UnmanagedJars-Aufgaben.

10
mcyalcin

Deklarieren Sie dies einfach in build.sbt

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

das erforderliche Glas wird in External Library> unmanaged-jars> Full-Jar-Name.jar angezeigt. Dies ändert sich auch, wenn die JAR-Datei (im angegebenen Pfad) geändert wird.

6
zero

In der Intellij-Idee:

  • Datei> Projektstruktur> Bibliotheken

In Netbeans:

  • Datei> Projekteigenschaften> Bibliotheken

In Eclipse:

  • Klicken Sie mit der rechten Maustaste auf das Projekt> Eigenschaften> Java-Erstellungspfad> Bibliotheken
6
svlzx

Bei einem SBT-Projekt mit mehreren Modulen (Intellij 2017.3.4, Scala 12.2.4, sbt 1.1.1) funktionierte die akzeptierte Lösung nur bis zum Neustart oder einer Projektaktualisierung. Tatsächlich gibt "Projekteinstellungen -> Module -> Abhängigkeiten", dann "+" und "JARs oder Verzeichnisse" eine Warnung aus. "Modul X wird aus Sbt importiert. Alle in seiner Konfiguration vorgenommenen Änderungen können nach dem Reimportieren verloren gehen." 

Mögliche Problemumgehung
Der Vorschlag von @zero funktionierte für mich wie folgt: 

  1. Legen Sie die JARs in das lib-Verzeichnis des Projekts.
  2. Fügen Sie in build.sbt in lazy var baseSettings = Seq( ... ) die Zeile unmanagedJars in Compile += file("YourPath/ProjectBla/lib/controlsfx-8.40.14.jar") hinzu. 
  3. Immer noch kein Glück? Versuchen Sie im SBT-Tool-Fenster in sbt-Einstellungeneines Moduls _ unter unmanagedBase, unmanagedSourceDirectories (und dergleichen) die Popup-Befehle "Wert anzeigen" und Mehrmals "inspizieren". Irgendwie könnte es funktionieren.

    Aus Eugene Yokotas Antwort auf Wie kann ich unmanaged JARs in sbt-Assembly zum endgültigen fetten JAR hinzufügen? Eine weitere Option (die ich nicht ausprobiert habe) ist das Hinzufügen eines individuellen lib-Verzeichnisses zu jedem erforderlichen Modul. 

Hoffentlich lösen diese Schritte das Problem oder helfen zumindest beim Debuggen. 

1
Tupolev._

Erstellen Sie ein lib-Verzeichnis in Ihrem Projektstammpfad, fügen Sie Ihre JARs dort ein, führen Sie sbt reload aus, schließen Sie das Projekt und öffnen Sie es erneut. Funktioniert für mich in IntelliJ 2018.2.4 und SBT 1.0

0
Radu Ciobanu