30

我创建了一个 IntelliJ Idea SBT Scala 项目,就像Heiko Seeberger 的文章所描述的那样。

我想在这个项目中添加一个 Jar 库(joda-time)。这个怎么做?简单地将它们放入项目的 /lib 没有帮助。如果我在 Idea 的项目树中右键单击“外部库”,“新建 >”是灰色的。

4

8 回答 8

32

在项目的 IntelliJ Idea 窗口中,转到文件 >> 项目结构 >> 库。单击该库选项后,将显示两个窗格。在最左侧窗格的顶部,单击绿色的“+”按钮。

于 2010-09-26T00:11:25.977 回答
14

更好的方法是将非托管依赖项添加到 build.sbt 中,并避免将部分依赖项管理留给 IDE。

有关如何定义 unmanagedBase 和 unmanagedJars 任务的详细信息,请参阅http://www.scala-sbt.org/release/docs/Library-Management.html 。

于 2015-04-20T13:57:02.613 回答
9

只需在 build.sbt 中声明

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

并且所需的 jar 将出现在 External Library>unmanaged-jars>Full-Jar-Name.jar 中。如果 jar 文件(在提供的路径中)被修改,这也会改变。

于 2016-07-24T04:28:08.617 回答
6

在 Intellij 理念中:

  • 文件 > 项目结构 > 库

在 Netbeans 中:

  • 文件 > 项目属性 > 库

在 Eclipse 中:

  • 右键单击项目 > 属性 > Java 构建路径 > 库
于 2013-05-29T07:57:03.177 回答
2

对于多模块 SBT 项目(Intellij 2017.3.4、Scala 12.2.4、sbt 1.1.1),接受的解决方案仅在重新启动或项目刷新之前有效。实际上,“项目设置-> 模块-> 依赖项”,然后“+”和“JAR 或目录”会给出警告“模块 X 是从 Sbt 导入的。重新导入后对其配置所做的任何更改都可能丢失”。

可能的解决方法
@zero 的建议对我有用,如下所示:

  1. 将 JAR(s) 放入项目的 lib目录中。

  2. build.sbt,里面lazy var baseSettings = Seq( ... ) 添加一行 unmanagedJars in Compile += file("YourPath/ProjectBla/lib/controlsfx-8.40.14.jar")

  3. 还是没有运气?在 SBT 工具窗口中,在unmanagedBase下 的模块sbt 设置中unmanagedSourceDirectories(等)尝试调用弹出命令“Show value”和“Inspect”几次。不知何故,它可能会奏效。

    来自 Eugene Yokota 对How can I add unmanaged JARs in sbt-assembly to the final fat JAR 的回答?另一种选择(我没有尝试过)是为lib每个必需的模块添加一个单独的目录。

希望这些步骤能够解决问题或至少有助于调试。

于 2018-02-15T18:57:05.670 回答
0

我们可以做的一种方法是在 Intellij 中显式添加 jar,但这种方法的问题是每次构建项目时都需要再次添加它。

第一种方法是:

在 Intellij 理念中:

文件 > 项目结构 > 库

另一种方法是在本地发布 jar

Step 1 : Place the jar in any accessible folder.
Step 2 Create a build.sbt file which contains the detail of the jar.
Step 3 Open cmd to that path and execute command sbt publishLocal.
Step 4 Build your code and you would observe that you are able to access the classes belong to that jar.

build.sbt 看起来像这样:

organization := "com.abc.core"
name := "abc-test-logging"
version := "1.0-SNAPSHOT"
crossPaths := false
packageBin in Compile := file(s"${name.value}-${version.value}.jar")
于 2021-09-09T12:18:52.193 回答
0

转到文件 -> 项目结构 -> 模块

在左窗格中选择模块并转到依赖项选项卡

单击 + 添加 JAR 或目录

于 2020-10-30T18:46:14.037 回答
0

在你的项目根路径中创建一个 lib 目录,将你的 JAR 粘贴到那里,运行 sbt reload,关闭项目并再次打开它。在 IntelliJ 2018.2.4 和 SBT 1.0 中为我工作

于 2018-10-04T13:51:46.880 回答