Sbt: 如何将本地文件系统 jar 添加到项目中?

我有一个编译成 jar 的库(不是 sbt 项目,只是 jar 文件) ,它在存储库中不可用。

有没有一种简单的方法可以直接在文件系统/项目中添加对 jar 的引用?

38940 次浏览

您可以将 jar 放在项目的 lib 文件夹中(如果它不存在,则创建它) ,然后它将出现在项目的非托管类路径上。

要在本地发布 jar 文件,如果您有一个生成 jar 的 sbt 项目,那么它应该很简单,只需调用“ Publishing-local”将 jar 发布到本地 Ivy 存储库,这样您就可以在另一个项目中(在同一台计算机上)使用该 jar。

SBT 项目的结构应该是这样的:

README.md
build.sbt
project/
src/
target/

创建一个 lib/目录,将一个 JAR 文件(例如 spark-daria_2.11-0.2.0.jar)添加到项目中:

README.md
build.sbt
lib/
spark-daria_2.11-0.2.0.jar
project/
src/
target/

lib/目录的位置应该与 sbt "show unmanagedBase"命令的输出对齐。

刷新 IDE 中的项目并导入代码,就像导入外部依赖项一样。

import com.github.mrpowers.spark.daria.sql.DataFrameValidator

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

  1. 将 lib 添加到模块 dir (而不是 root)。
  2. 在 build.sbt 中(或其他位置)删除指定 jar 的显式依赖项