使SBT项目在离线环境中起作用的最佳方法是什么?有任何方法可以将其编译在外部(网络环境中),例如,Uber Jar及其所有依赖性,然后在离线设备中刚运行?
例如,在Java Maven中,我们可以用Uber Jar和所有依赖关系进行编译,然后在离线env中仅java -jar MyJar.jar
...
谢谢。
创建Uber/Fat Jar的最佳选择是SBT组装插件。通过将以下内容放入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")