SBT为超级罐编译

问题描述 投票:1回答:1

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

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

谢谢。

scala compilation sbt offline
1个回答
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指定一个主类:

mainClass in assembly := Some("package.mainClass")
© www.soinside.com 2019 - 2024. All rights reserved.