Plugins¶
Eleven plugins are published. A project applies root once and then one plugin per module. The
rest are applied for you or opted into.
| Plugin | Identifier | Apply it |
|---|---|---|
| Root | io.github.thomaskioko.gradle.plugins.root |
On the root project, once |
| App | io.github.thomaskioko.gradle.plugins.app |
On an Android application module |
| Android | io.github.thomaskioko.gradle.plugins.android |
On an Android library module |
| JVM | io.github.thomaskioko.gradle.plugins.jvm |
On a plain Kotlin library module |
| Multiplatform | io.github.thomaskioko.gradle.plugins.multiplatform |
On a Kotlin Multiplatform module |
| Base | io.github.thomaskioko.gradle.plugins.base |
Applied for you by the four above |
| Spotless | io.github.thomaskioko.gradle.plugins.spotless |
Applied for you by Base |
| Lint | io.github.thomaskioko.gradle.plugins.lint |
On the root project, to add the custom rules |
| Baseline profile | io.github.thomaskioko.gradle.plugins.baseline.profile |
On a benchmark module |
| Resource generator | io.github.thomaskioko.gradle.plugins.resource.generator |
On the module holding the strings |
| Build config | io.github.thomaskioko.gradle.plugins.buildconfig |
On a module needing compile-time constants |
Pick exactly one of App, Android, JVM and Multiplatform per module. Each applies Base, which is
what creates the scaffold {} block.
Where the options live¶
scaffold {} is one block with nested blocks that appear only when the matching plugin is
applied.
scaffold {
// always here, see the Base page
useMetro()
// only on an Android or Multiplatform module, see the Android page
android {
useCompose()
}
// only on an Android application module, see the App page
app {
applicationId("com.example.myapp")
}
// only on a JVM module, see the JVM page
jvm {
useAndroidLint()
}
}