Bird
Raised Fist0
Kotlinprogramming~20 mins

Project structure and build basics in Kotlin - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Kotlin Gradle Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
1:30remaining
Understanding Kotlin source folder structure

Given a typical Kotlin project, where should you place your main application code?

Asrc/main/kotlin
Bsrc/test/kotlin
Cbuild/kotlin
Dlib/kotlin
Attempts:
2 left
💡 Hint

Main application code goes in the source folder for production code, not tests or build outputs.

❓ Predict Output
intermediate
1:30remaining
Gradle build script basics

What will be the output of running gradle tasks in a Kotlin project with a standard Gradle build?

ALists all available Gradle tasks including build, clean, and test
BCompiles the Kotlin source code
CRuns the main application
DDeletes the build directory
Attempts:
2 left
💡 Hint

Think about what the tasks command does in Gradle.

🔧 Debug
advanced
2:00remaining
Identify the build error in Gradle Kotlin DSL

Consider this snippet from a build.gradle.kts file:

plugins {
    kotlin("jvm") version "1.5.0"
}

repositories {
    mavenCentral()
}

dependencies {
    implementation(kotlin("stdlib"))
    testImplementation("junit:junit:4.13.2")
}

application {
    mainClass.set("com.example.MainKt")
}

What error will Gradle report when trying to build?

AError: Missing repository declaration
BError: Kotlin version mismatch
CError: Unresolved reference: application
DNo error, build succeeds
Attempts:
2 left
💡 Hint

Check if the application block is recognized by Gradle without applying the right plugin.

❓ Predict Output
advanced
1:30remaining
Output of Kotlin main function in Gradle project

Given this Kotlin main function in src/main/kotlin/com/example/Main.kt:

package com.example

fun main() {
    println("Hello from Kotlin Gradle project!")
}

What is the output when you run gradle run after configuring the application plugin correctly?

ABuild successful, no output
BHello from Kotlin Gradle project!
CError: main function not found
DGradle task 'run' not found
Attempts:
2 left
💡 Hint

Running gradle run executes the main function if configured properly.

🧠 Conceptual
expert
2:00remaining
Understanding Gradle build lifecycle phases

Which Gradle build phase is responsible for compiling Kotlin source code?

AExecution phase
BConfiguration phase
CInitialization phase
DTask execution phase
Attempts:
2 left
💡 Hint

Think about when tasks actually run during a Gradle build.

Practice

(1/5)
1. Which folder in a typical Kotlin project contains the main source code files?
easy
A. resources/main
B. src/test/kotlin
C. build/libs
D. src/main/kotlin

Solution

  1. Step 1: Understand standard Kotlin project folders

    The src/main/kotlin folder is where the main Kotlin source files are placed.
  2. Step 2: Differentiate from other folders

    src/test/kotlin is for test code, build/libs is for compiled output, and resources/main is for resource files.
  3. Final Answer:

    src/main/kotlin -> Option D
  4. Quick Check:

    Main source code folder = src/main/kotlin [OK]
Hint: Main code is always under src/main/kotlin folder [OK]
Common Mistakes:
  • Confusing test folder with main source folder
  • Thinking build output folders contain source code
  • Mixing resource folders with source code folders
2. Which file is commonly used to define build instructions in a Kotlin project using Gradle?
easy
A. settings.gradle
B. build.gradle.kts
C. gradle.properties
D. manifest.xml

Solution

  1. Step 1: Identify Gradle build script files

    Gradle uses build.gradle.kts (Kotlin DSL) or build.gradle (Groovy DSL) to define build instructions.
  2. Step 2: Differentiate from other Gradle-related files

    settings.gradle configures multi-project builds, gradle.properties holds properties, and manifest.xml is unrelated.
  3. Final Answer:

    build.gradle.kts -> Option B
  4. Quick Check:

    Build instructions file = build.gradle.kts [OK]
Hint: Build scripts are named build.gradle.kts for Kotlin DSL [OK]
Common Mistakes:
  • Confusing settings.gradle with build.gradle.kts
  • Thinking gradle.properties contains build logic
  • Mixing XML files with Gradle scripts
3. Given this Gradle build snippet, what will be the output directory for compiled Kotlin classes?
kotlin {
    jvmToolchain(17)
}

tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
    kotlinOptions.jvmTarget = "17"
}
medium
A. build/classes/kotlin/main
B. src/main/kotlin
C. build/libs
D. out/production

Solution

  1. Step 1: Understand Gradle default output folders

    By default, Kotlin compiled classes go to build/classes/kotlin/main for the main source set.
  2. Step 2: Differentiate source and output folders

    src/main/kotlin is source code, build/libs holds packaged jars, and out/production is not standard for Gradle Kotlin projects.
  3. Final Answer:

    build/classes/kotlin/main -> Option A
  4. Quick Check:

    Compiled classes output = build/classes/kotlin/main [OK]
Hint: Compiled classes go under build/classes/kotlin/main by default [OK]
Common Mistakes:
  • Confusing source folder with output folder
  • Thinking build/libs holds class files instead of jars
  • Assuming non-standard output folders
4. You see this error when running Gradle: Could not find method kotlin() for arguments. What is the likely cause?
medium
A. The Kotlin plugin is not applied in build.gradle.kts
B. The source folder is missing
C. The JVM target version is invalid
D. The Gradle wrapper is outdated

Solution

  1. Step 1: Understand the error message context

    The error means Gradle does not recognize the kotlin {} block, usually because the Kotlin plugin is missing.
  2. Step 2: Check common causes

    Missing plugins { kotlin("jvm") version "x.y.z" } causes this error. Source folder or JVM target issues cause different errors. Outdated Gradle wrapper usually causes version incompatibility errors.
  3. Final Answer:

    The Kotlin plugin is not applied in build.gradle.kts -> Option A
  4. Quick Check:

    Missing Kotlin plugin causes kotlin() method error [OK]
Hint: Check if Kotlin plugin is applied when kotlin() method errors occur [OK]
Common Mistakes:
  • Assuming source folder missing causes this error
  • Blaming JVM target version without checking plugin
  • Ignoring plugin application in build script
5. You want to add a new resource folder to your Kotlin project for configuration files. Where should you place it to follow standard Gradle project structure?
hard
A. src/resources/main
B. resources/config
C. src/main/resources
D. config/resources

Solution

  1. Step 1: Recall standard resource folder location

    Gradle expects resource files in src/main/resources to include them in the build output.
  2. Step 2: Differentiate from incorrect folder structures

    Folders like resources/config, src/resources/main, or config/resources are not standard and won't be automatically included.
  3. Final Answer:

    src/main/resources -> Option C
  4. Quick Check:

    Resource files go under src/main/resources [OK]
Hint: Put resource files in src/main/resources for Gradle to find them [OK]
Common Mistakes:
  • Placing resources outside src/main folder
  • Using non-standard folder names
  • Not including resources in build output
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard