SBT为超级罐编译

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SBT为超级罐编译相关的知识,希望对你有一定的参考价值。

使SBT项目在离线环境中工作的最佳方法是什么?有任何方法可以在外部(在网络环境中)编译它,例如具有所有依赖关系的超级jar,然后在离线环境中运行它吗?

例如在Java Maven中,我们可以使用具有所有依赖关系的超级jar编译它,然后在离线环境中只使用java -jar MyJar.jar ...

谢谢。

答案

制作超级/脂肪罐的最佳选择是sbt assembly plugin。通过在project/assembly.sbt中添加以下内容,将其包含在您的项目中

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.6")

然后运行sbt assembly应该创建一个包含target/scala_$SCALA_VERSION中所有依赖项的jar。如果你想用java -jar(而不是java -cp $jarfile $mainclass)运行它,你可能需要为jar指定一个主类:

mainClass in assembly := Some("package.mainClass")

以上是关于SBT为超级罐编译的主要内容,如果未能解决你的问题,请参考以下文章

超级有用的9个PHP代码片段

SBT 插件:如何将编译器插件添加为不向下游传播的依赖项?

一个使用sbt编译的JNI C++ 的模板

从 SBT 任务中下载编译和发布

sbt总是重新编译CI中的完整项目,即使使用缓存?

Android:BottomNavigationView第一个片段开关超级延迟