sbt-assembly
apply-at-vdb
Our great sponsors
sbt-assembly | apply-at-vdb | |
---|---|---|
6 | 1 | |
1,933 | 0 | |
0.1% | - | |
6.6 | 4.0 | |
about 1 month ago | 4 months ago | |
Scala | Scala | |
MIT License | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
sbt-assembly
-
Trouble with sbt-native-packager
sbt-assembly is still my go-to. So what I'd prefer is the combination of sbt-assembly (to build my .jar that I can just java -jar anytime I want) and sbt-jib (to construct my OCI image including my assembly .jar for deployment in some container orchestration environment).
- sbt-assembly 2.0.0-RC1 released
-
SBT error when running package application: java.lang.RuntimeException: No main class detected.
You may also use sbt-assembly to produce an uber JAR that embeds the Scala stdlib together with your code, which means that now for running your program you only need a JRE like java -jar app-assembly.jar. This option is great because now if you start adding dependencies to your project those are also included in this massive JAR.
-
Welcome to JAR Hell, Part 2: Deployment Strategies
Sbt-assembly defaults to silently concatenating configs. But even if it didn't, the configs wouldn't be in any particular order when resolving.
-
How to handle sbt deduplication errors on module-info.class files
Ticket of record is https://github.com/sbt/sbt-assembly/issues/391
-
Building native images and compiling with GraalVM and sbt
With the sbt-assembly plugin you can create JAR-files with all of its dependencies (fat JARs). sbt assembly creates this target/scala-2.12/apply-at-vdb-assembly-0.1.0-SNAPSHOT.jar which has a size of around 42MB:
apply-at-vdb
-
Building native images and compiling with GraalVM and sbt
The full setup can be found on Github. But I'll summarise the used stack below. The project is built around the following libraries, no particular reason, simply because I like them.
What are some alternatives?
sbt-native-packager - sbt Native Packager
coursier - Pure Scala Artifact Fetching
sbt-release - A release plugin for sbt
sbt-docker - Create Docker images directly from sbt
sbt-dependency-check - SBT Plugin for OWASP DependencyCheck. Monitor your dependencies and report if there are any publicly known vulnerabilities (e.g. CVEs). :rainbow:
sbt-buildinfo - I know this because build.sbt knows this.
sbt-pack - A sbt plugin for creating distributable Scala packages.
JMH - "Trust no one, bench everything." - sbt plugin for JMH (Java Microbenchmark Harness)
sbt-sonatype - A sbt plugin for publishing Scala/Java projects to the Maven central.
tut - doc/tutorial generator for scala
sbteclipse - Plugin for sbt to create Eclipse project definitions
sbt-revolver - An SBT plugin for dangerously fast development turnaround in Scala