SBT,如何将非托管JAR添加到IntelliJ?

时间:2017-11-20 10:29:00

标签: scala intellij-idea jar sbt unmanaged

我有build.sbt文件:

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

它工作正常,如果我使用sbt run,但我无法从IntelliJ运行。

我收到错误:

  

java.lang.UnsatisfiedLinkError:java.library.path中没有opencv_java331

我可以手动添加(文件 - >项目结构 - >库 - > +必需的目录)。 我的问题是:是否可以指定build.sbt它将自动创建具有指定库的IntelliJ项目?

1 个答案:

答案 0 :(得分:0)

我想说:尝试将依赖项拖放到/ lib中,该目录应位于项目的根目录中,如果它不存在则创建它。

运行命令: sbt reload sbt update

最后,您可以尝试以下方法: 档案 - >项目结构 - >模块 - >然后标记所有模块通常1到3,删除它们(不要担心不会删除你的文件) - >点击绿色加号并选择导入模块 - >选择项目的根目录,然后刷新它

如果这些都没有帮助,我就没有想法了。