Skip to content
Gradle Build logo

Gradle Build

Kotlin DSL, dependencies, tasks, plugins, and multi-project builds.

ngxtm/devkit0installs8stars

SKILL.md

Full skill instructions

Gradle Build Standards

Kotlin DSL Structure

// build.gradle.kts
plugins {
    java
    id("org.springframework.boot") version "3.2.0"
    id("io.spring.dependency-management") version "1.1.4"
}

group = "com.example"
version = "1.0.0-SNAPSHOT"

java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(21)
    }
}

repositories {
    mavenCentral()
}

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-web")
    implementation("org.springframework.boot:spring-boot-starter-data-jpa")
    runtimeOnly("org.postgresql:postgresql")

    testImplementation("org.springframework.boot:spring-boot-starter-test")
    testRuntimeOnly("org.junit.platform:junit-platform-launcher")
}

tasks.test {
    useJUnitPlatform()
}

Dependency Configurations

dependencies {
    implementation("...")       // Compile + runtime, not exposed
    api("...")                  // Compile + runtime, exposed to consumers
    compileOnly("...")          // Compile only (like Lombok)
    runtimeOnly("...")          // Runtime only (JDBC drivers)
    testImplementation("...")   // Test compile + runtime
    annotationProcessor("...")  // Annotation processing
}

Custom Tasks

tasks.register("hello") {
    group = "custom"
    description = "Prints hello"
    doLast {
        println("Hello, Gradle!")
    }
}

tasks.register<Copy>("copyResources") {
    from("src/​main/​resources")
    into("build/​resources")
}

Common Commands

./​gradlew build          # Build project
./​gradlew test           # Run tests
./​gradlew bootRun        # Run Spring Boot
./​gradlew dependencies   # Show dependencies
./​gradlew tasks          # List tasks

References

  • Kotlin DSL - Migration from Groovy, type-safe configuration