sbt:如何在项目中添加本地文件系统jar?

时间:2011-10-11 21:58:15

标签: jar repository sbt

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

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

3 个答案:

答案 0 :(得分:53)

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

要在本地发布jar文件,如果你有一个生成jar的sbt项目,它应该像调用“publish-local”一样简单,将jar发布到你的本地ivy存储库,以便你可以使用那个jar另一个项目(在同一台计算机上)。

答案 1 :(得分:13)

您的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

答案 2 :(得分:0)

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

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