SBT为超级罐编译

时间:2017-12-26 19:38:09

标签: scala compilation sbt offline

使SBT项目在离线环境中工作的最佳方法是什么? 有什么方法可以在外面编译它(在网络环境中), 例如uber jar及其所有依赖项,然后在离线环境中 跑吧?

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

感谢。

1 个答案:

答案 0 :(得分:1)

创造超级/胖子的最佳选择是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,则可能需要为jar指定一个主类:

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