= Kotlin Module Configuration
:page-aliases: Kotlin_Module_Config.adoc
:language: Kotlin
:language-small: kotlin
:language-doc: dokka

This page goes into more detail about the various configuration options
for `KotlinModule`.

Many of the APIs covered here are listed in the API documentation:

* {mill-doc-url}/api/latest/mill/kotlinlib/KotlinModule.html[mill.kotlinlib.KotlinModule]

== Declarative Configuration

include::partial$example/kotlinlib/module/1-basic-config.adoc[]

=== Kotlin Compiler Plugins

include::partial$example/kotlinlib/module/2-kotlin-compiler-plugins.adoc[]

=== Doc-Jar Generation

include::partial$example/kotlinlib/module/3-docjar.adoc[]

== Programmable Configuration

include::partial$example/kotlinlib/module/4-programmable-config.adoc[]


=== Custom Tasks

include::partial$example/kotlinlib/module/5-custom-tasks.adoc[]


=== Generated Sources

include::partial$example/kotlinlib/module/6-generated-sources.adoc[]



=== Classpath and Filesystem Resources

include::partial$example/kotlinlib/module/7-resources.adoc[]

=== Dependency Injection with Dagger and KSP

include::partial$example/kotlinlib/module/10-dependency-injection.adoc[]


=== Native C Code with JNI

include::partial$example/kotlinlib/module/15-jni.adoc[]

== Integrating Declarative and Programmatic Config

=== Custom Module Traits

include::partial$example/kotlinlib/module/17-custom-trait.adoc[]

=== Programmable `moduleDeps`

include::partial$example/kotlinlib/module/18-programmable-module-deps.adoc[]
