【问题标题】:Where does the lib directory for unmanaged jars in sbt directory structure go?sbt 目录结构中非托管 jar 的 lib 目录在哪里?
【发布时间】:2026-02-01 01:35:01
【问题描述】:

我正在尝试将 jar 文件添加到 sbt 项目中,但我不知道将它们存储在哪里。 sbt 文档说“只需将它们放在 lib 文件夹中,就可以了!”,但没有提供有关实际放置此 lib 文件夹的位置的任何信息。 lib文件夹是否在src下?在 src 文件夹所在的顶层层次结构中?我真的不确定,希望能得到一些帮助。

【问题讨论】:

标签: java jar directory sbt


【解决方案1】:

根据http://alvinalexander.com/scala/how-to-create-sbt-project-directory-structure-scala,lib 应该是您项目目录的子目录。我刚试了一下,效果很好。

    .
    |-- build.sbt
    |-- lib
    |-- project
    |-- src
    |   |-- main
    |   |   |-- java
    |   |   |-- resources
    |   |   |-- scala
    |   |-- test
    |       |-- java
    |       |-- resources
    |       |-- scala
    |-- target

【讨论】:

  • 感谢您添加此答案。我在其他地方找到了答案,但我想我忘记了这个问题。希望它对其他搜索此内容的人有用。
  • 这是否适用于任何第三方 jar,包括使用 maven/gradle 构建的 java 应用程序 jar? SBT 是先在本地 lib 文件夹中查找第三方 jar,还是我需要为其指定解析器?
【解决方案2】:

我会在文件层次结构的顶部进行图像处理。 此外,如果您使用现代 IDE,例如 Eclipse、InteliJ 等,您只需执行以下步骤即可:

  • 右键单击项目文件树中的[项目名称]
  • 属性
  • Java 构建路径 --> 库
  • 添加外部罐子

如果您需要更多帮助,请直说。

在前一个选项中(将 jar 文件拖到项目中),您将执行以下操作:

  • 在项目的根目录中,src 所在的位置,创建一个名为lib 或其他名称的新文件并将jar 文件拖入其中。在此之后,您需要重新配置构建路径,或者如果您使用的是现代 IDE,您只需右键单击 lib 文件并选择 Build Path --> Add to Build Path

【讨论】:

    【解决方案3】:

    如果你有多模块项目,你应该:

    1. 将 lib 添加到模块目录(而不是根目录)。例如,如果您有模块 core,则应将 jar 添加到 core/lib
    2. 在你的 build.sbt(或其他地方)中删除指定 jar 的显式依赖。例如,删除 libraryDependencies += <your jar in lib>

    相关问题:https://*.com/posts/67116531

    【讨论】: