What are key differences between sbt-pack and sbt-assembly? -
i've stumbled upon sbt-pack plugin. development stream seems steady. it's surprising me believed plugin (quoting sbt-pack's headline) "creating distributable scala packages." sbt-assembly (among other features).
what key differences between plugins? when should use 1 on other?
(disclaimer: maintain sbt-assembly)
sbt-assembly
sbt-assembly creates fat jar - single jar file containing class files code , libraries. evolution, contains ways of resolving conflicts when multiple jars provide same file path (like config or readme file). involves unzipping of library jars, it's bit slow, these heavily cached.
sbt-pack
sbt-pack keeps library jars intact, moves them target/pack
directory (as opposed ivy cache live), , makes shell script run them.
sbt-native-packager
sbt-native-packager similar sbt-pack started sbt committer josh suereth, , maintained highly capable nepomuk seiler (also known muuki88). plugin supports number of formats windows msi file , debian deb file. recent addition support docker images.
all viable means of creating deployment images. in cases deploying application web framework etc., might make things easier if you're dealing 1 file opposed dozen.
honorable mention: sbt-progard , sbt-onejar.
Comments
Post a Comment