使SBT项目在离线环境中工作的最佳方法是什么? 有什么方法可以在外面编译它(在网络环境中), 例如uber jar及其所有依赖项,然后在离线环境中 跑吧?
例如在Java Maven中,
我们可以用带有所有依赖项的超级jar编译它,
然后在离线环境中java -jar MyJar.jar
...
感谢。
答案 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")