scala 使用 SBT 包在 JAR 中包含依赖项
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/32859316/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Include Dependencies in JAR using SBT package
提问by BAR
Apparently project dependencies are not being packaged into the jar generated by:
显然,项目依赖项没有被打包到由以下生成的 jar 中:
sbt package
How can dependencies be included?
如何包含依赖项?
采纳答案by djsumdog
There's a project called onejar that will package a project and all its dependencies into a single jar file. There is an SBT plugin as well:
有一个名为 onejar 的项目,它将一个项目及其所有依赖项打包到一个 jar 文件中。还有一个 SBT 插件:
https://github.com/sbt/sbt-onejar
https://github.com/sbt/sbt-onejar
However if you're just looking to create a standard package (deb, rpm, etc.) there is sbt-native-packager:
但是,如果您只是想创建标准包(deb、rpm 等),则可以使用 sbt-native-packager:
https://github.com/sbt/sbt-native-packager
https://github.com/sbt/sbt-native-packager
It can place all your dependencies into a Linux package and add the appropriate wrappers to load all your dependencies and start your program or service.
它可以将您的所有依赖项放入一个 Linux 包中,并添加适当的包装器来加载您的所有依赖项并启动您的程序或服务。
回答by prayagupd
Well, I use sbt-assemblypluginto create jar with dependencies,
好吧,我使用sbt-assembly插件来创建具有依赖项的 jar,
(1) add sbt-assemblyto projects/assembly.sbt
(1) 添加sbt-assembly到projects/assembly.sbt
echo 'addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.8")' > project/assembly.sbt
(2)run sbt clean assemblyto build the jar.
It will create ${name}-assembly-${version}.jarin target/scala-${scalaVersion}
(2)运行sbt clean assembly以构建 jar。它会${name}-assembly-${version}.jar在target/scala-${scalaVersion}
(3) Only in case you get infamous de-duplicate error, use assemblyMergeStrategyas described in here
(3) 仅当您遇到臭名昭著的重复数据删除错误时,请assemblyMergeStrategy按照此处的说明使用

