使用SBT包在JAR中包含依赖项

时间:2015-09-30 06:33:07

标签: scala sbt

显然项目依赖项没有打包到由:

生成的jar中
sbt package

如何包含依赖项?

2 个答案:

答案 0 :(得分:10)

好吧,我使用sbt-assembly plugin来创建带依赖关系的jar,

(1)将sbt-assembly添加到projects/assembly.sbt

echo 'addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.8")' > project/assembly.sbt

(2) 运行sbt clean assembly来构建jar 。 它将在${name}-assembly-${version}.jar

中创建target/scala-${scalaVersion}

(3)仅在您收到臭名昭着的重复数据删除错误的情况下,请按in here

所述使用assemblyMergeStrategy

答案 1 :(得分:6)

有一个名为onejar的项目,它将项目及其所有依赖项打包到一个jar文件中。还有一个SBT插件:

https://github.com/sbt/sbt-onejar

但是,如果你只是想创建一个标准包(deb,rpm等),那就有sbt-native-packager:

https://github.com/sbt/sbt-native-packager

它可以将所有依赖项放入Linux包中,并添加适当的包装器以加载所有依赖项并启动程序或服务。