= Packaging Scala Projects
:language: Scala
:language-small: scala

This page will discuss common topics around packaging your Scala projects for distribution.


== Building Executable Assemblies

include::partial$example/scalalib/packaging/3-assembly-config.adoc[]

== Building Native Image Binaries with Graal VM

include::partial$example/scalalib/packaging/1-native-image.adoc[]

For another example building a slightly less trivial project into a Graal native
image, see below:

include::partial$example/scalalib/packaging/2-native-image-libs.adoc[]


== Building `Repackage` Assemblies

include::partial$example/scalalib/packaging/4-repackage-config.adoc[]


== `jlink` and `jpackage`

Mill has builtin support for the https://docs.oracle.com/en/java/javase/11/tools/jlink.html[JLink] and
https://docs.oracle.com/en/java/javase/17/docs/specs/man/jpackage.html[JPackage] command line tools.
For more details, see:

* xref:javalib/packaging.adoc#_java_app_and_bundles_using_jlink[Java App and Bundles using JLink]
* xref:javalib/packaging.adoc#_java_installers_using_jpackage[Java Installers using JPackage]

