2017-11-20 3 views
0

Ich habe build.sbt Datei:SBT, wie man nicht verwaltete JARs zu IntelliJ hinzufügen?

import sbt.Keys.libraryDependencies 

lazy val scalatestVersion = "3.0.4" 
lazy val scalaMockTestSupportVersion = "3.6.0" 
lazy val typeSafeConfVersion = "1.3.2" 
lazy val scalaLoggingVersion = "3.7.2" 
lazy val logbackClassicVersion = "1.2.3" 

lazy val commonSettings = Seq(
    organization := "com.stulsoft", 
    version := "0.0.1", 
    scalaVersion := "2.12.4", 
    scalacOptions ++= Seq(
    "-feature", 
    "-language:implicitConversions", 
    "-language:postfixOps"), 
    libraryDependencies ++= Seq(
    "com.typesafe.scala-logging" %% "scala-logging" % scalaLoggingVersion, 
    "ch.qos.logback" % "logback-classic" % logbackClassicVersion, 
    "com.typesafe" % "config" % typeSafeConfVersion, 
    "org.scalatest" %% "scalatest" % scalatestVersion % "test", 
    "org.scalamock" %% "scalamock-scalatest-support" % scalaMockTestSupportVersion % "test" 
) 
) 

unmanagedJars in Compile += file("lib/opencv-331.jar") 

lazy val pimage = project.in(file(".")) 
    .settings(commonSettings) 
    .settings(
    name := "pimage" 
) 

parallelExecution in Test := true 

Es funktioniert gut, wenn ich sbt laufen, aber ich kann nicht von IntelliJ laufen.

Ich erhalte Fehler:

java.lang.UnsatisfiedLinkError: no opencv_java331 in java.library.path

ich manuell hinzufügen kann (File-> Projekt Struktur-> Bibliotheken -> + erforderlich dir). Meine Frage ist: ist es möglich, build.sbt anzugeben, dass es automatisch IntelliJ-Projekt mit der angegebenen Bibliothek erstellen wird?

Antwort

0

Ich würde versuchen zu: Drag & Drop die Abhängigkeit in die/lib, die im Stammverzeichnis Ihres Projekts sein sollte, wenn es nicht dort ist, erstellen Sie es.

Run-Befehle: sbt reload sbt aktualisieren

Schließlich Sie so etwas wie versuchen könnte: Datei -> Projektstruktur -> Module -> dann alle Module markieren in der Regel 1 bis 3, löschen Sie sie (don‘ t Sorge wird nicht Ihre Dateien löschen) -> drücken Sie das grüne Pluszeichen und wählen Sie Modul importieren -> wählen Sie das Stammverzeichnis Ihres Projekts und es sollte es dann aktualisieren

Wenn keiner von diesen helfen, bin ich aus Ideen .

+0

Vielen Dank @Tadas V Wie ich bereits erwähnt habe kann ich es manuell machen ((Datei-> Projektstruktur-> Bibliotheken -> + notwendiges Verzeichnis) Aber es bedeutet, dass jeder, der mein sbt-Projekt benutzt, dasselbe tun muss - manuelle Einstellungen Ich suche nach einer Möglichkeit, es automatisch zu tun, nur aus build.sbt Datei – den123

+0

Kein Problem pal. Obwohl, wenn Sie die Abhängigkeit in die/lib hinzufügen und dann zu VCS hinzufügen (sollte nicht Egal, ob es github oder bitbucket oder andere war, Sie sollten in der Lage sein, es zu pushen und wer auch immer dann Ihr Projekt klont, würde es auch mit dem Projekt bekommen, obwohl Sie überprüfen müssten, ob das Hinzufügen zur/lib erlaubt wäre Sie müssen mit der Abhängigkeit wie erwartet arbeiten.Wenn Sie es zu/lib hinzufügen, sollte es innerhalb des Projekts ohne weitere Konfiguration verwendbar sein, es sei denn, die Abhängigkeit selbst erfordert es. –

Verwandte Themen