Build tool mengelola kompilasi, dependency, dan distribusi. Kotlin memakai Gradle sebagai tool utama, tetapi Maven masih didukung melalui kotlin-maven-plugin.

# Kotlin Compiler

Pelajari kotlinc CLI: opsi -include-runtime, -cp, -d, mode daemon, serta perbedaan kotlinc-jvm, kotlinc-js, dan kotlinc-native.

Buka →
# Gradle Fundamentals

Pelajari konsep dasar Gradle: lifecycle init-configure-execute, perbedaan Kotlin DSL (build.gradle.kts) vs Groovy DSL (build.gradle).

Buka →
# Kotlin Gradle Plugin

Pelajari kotlin-gradle-plugin: cara mendaftarkan plugin kotlin("jvm"), task yang ditambahkan, dan konfigurasi compiler options.

Buka →
# Gradle Project Structure

Pelajari struktur direktori standar Gradle: settings.gradle.kts, build.gradle.kts, src/main/kotlin, src/test/kotlin, serta setup multi-modul.

Buka →
# Gradle Dependencies

Pelajari cara mendeklarasikan dependensi di Gradle: configuration implementation, api, testImplementation, compileOnly, dan format koordinat group:name:version.

Buka →
# Gradle Tasks

Pelajari task Gradle: task bawaan plugin Kotlin, custom task dengan tasks.register, doLast vs doFirst, dan parameter via gradleProperty.

Buka →
# Gradle Build Lifecycle

Bedah tiga fase build Gradle: Initialization, Configuration, Execution, dengan doLast vs doFirst dan up-to-date checking.

Buka →
# Version Catalogs

Pelajari version catalog Gradle: file libs.versions.toml dengan [versions], [libraries], [bundles], dan cara mereferensikannya di build.gradle.kts.

Buka →
# Dependency Resolution

Pelajari cara Gradle menyelesaikan dependensi transitif, strategi konflik versi (highest wins, strict, exclude, constraints), dan pemeriksaan tree.

Buka →
# Maven Fundamentals

Pelajari Maven untuk Kotlin: kotlin-maven-plugin, struktur pom.xml, lifecycle phases compile/test/package, serta perintah mvn umum.

Buka →
# Maven Dependencies

Pelajari dependensi Maven: scope compile, test, provided, runtime; repository Maven Central; serta mvn dependency:tree dan dependency:analyze.

Buka →
# Build Variants

Pelajari build variants Gradle: buildType debug/release, productFlavors, source set per variant, dan applicationIdSuffix untuk multiple build.

Buka →
# Reproducible Builds

Pelajari reproducible builds: input yang sama menghasilkan output bytecode identik, pengaturan Gradle (isReproducibleFileOrder, SOURCE_DATE_EPOCH), dan verifikasi.

Buka →
# Build Tool Best Practices

Rangkuman praktik terbaik build tools: pin versi di version catalog, pakai Gradle Wrapper, build bersih di CI, cache dependensi, hindari dynamic version.

Buka →