Gradle Project Structure
Explore the standard Gradle project layout and the role of `build.gradle` and `settings.gradle`.
Gradle Project Structure is a free Groovy & Gradle: JVM Automation and Build Engineering lesson on CoddyKit — lesson 2 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Groovy & Gradle: JVM Automation and Build Engineering learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
Why Structure Matters
A well-organized project is key to successful development! Just like a recipe needs clear steps, a software project needs a clear structure.
Gradle projects follow a standard layout. This makes it easier for developers to understand, maintain, and collaborate on code.
The Gradle Root Project
Every Gradle build has a root project. This is usually the top-level directory where you run Gradle commands.
- It's the starting point for Gradle's build process.
- It can be a single project or contain multiple subprojects.
Think of it as the main folder for your entire application.
`settings.gradle`: Build Setup
The settings.gradle file is crucial for telling Gradle about your project structure.
- It defines the project's name.
- For multi-project builds, it lists all subprojects.
Even for a single project, it's good practice to have this file.
rootProject.name = 'my-first-gradle-app'`build.gradle`: The Core Script
The build.gradle file is where you define all the rules for building your project. It contains:
- Plugins to add specific functionalities (like Java compilation).
- Project dependencies (libraries your code needs).
- Custom tasks and configurations.
This is your project's main instruction manual for Gradle!
Key Project Files
When you initialize a Gradle project, you'll see a few important files:
settings.gradle: Configures the build structure.build.gradle: Defines build logic (tasks, dependencies).gradlew(andgradlew.bat): The Gradle Wrapper scripts..gradle/: Directory for Gradle's internal files (cache, daemon logs).
These files work together to make your build happen.
Common Directories
Gradle projects typically follow a convention for directories:
src/: Contains all your source code and resources.build/: Where Gradle puts all generated files (compiled code, JARs, reports).lib/(optional): Sometimes used for unmanaged, local dependencies.
Sticking to this layout helps Gradle find things automatically.
The `src` Directory Explained
The src directory is further organized:
src/main/java: Your main application's Java source files.src/main/resources: Non-code assets for your main app (e.g., config files).src/test/java: Your test source files.src/test/resources: Non-code assets for your tests.
This separation helps keep your code clean and manageable.
First Java `build.gradle`
Here's a simple build.gradle file for a Java project. It tells Gradle to apply the Java plugin and define basic project info.
plugins {
id 'java' // Apply the Java plugin
}
group = 'com.coddykit'
version = '1.0-SNAPSHOT'
repositories {
mavenCentral() // Where to find dependencies
}
// No dependencies for this basic example
dependencies {
}Hello Gradle Java App
Let's create a simple Java program that fits into our src/main/java structure. Try running it!
// File: src/main/java/com/coddykit/Main.java
package com.coddykit;
public class Main {
public static void main(String[] args) {
System.out.println("Hello from Gradle Project!");
}
}Gradle's Build Flow
When you run a Gradle command (like gradle build), here's a simplified flow:
- Gradle finds and executes
settings.gradle. - It then processes the
build.gradlefile(s). - Plugins are applied, tasks are configured.
- Finally, the requested tasks are executed (e.g., compile code, run tests).
This process transforms your source code into a usable output.
Quick Check: Core Files
Understanding the role of each file is fundamental to Gradle.
Recap: Gradle Structure
In this lesson, we explored the standard structure of a Gradle project:
- The root project as the entry point.
settings.gradlefor project configuration.build.gradlefor core build logic.- The conventional
src/andbuild/directories.
This structure ensures clarity and efficiency in your build automation. Next, we'll dive deeper into tasks!
Frequently asked questions
Is the “Gradle Project Structure” lesson free?
Yes — the full text of “Gradle Project Structure” is free to read here on the web, and the Groovy & Gradle: JVM Automation and Build Engineering course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Groovy & Gradle: JVM Automation and Build Engineering course, upgrade to CoddyKit PRO.
What will I learn in “Gradle Project Structure”?
Explore the standard Gradle project layout and the role of `build.gradle` and `settings.gradle`. You practise Groovy & Gradle: JVM Automation and Build Engineering with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start Groovy & Gradle: JVM Automation and Build Engineering?
No prior experience is required. Groovy & Gradle: JVM Automation and Build Engineering on CoddyKit is structured for beginners through advanced learners; this is — lesson 2 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “Gradle Project Structure” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this Groovy & Gradle: JVM Automation and Build Engineering lesson?
Yes. Every Groovy & Gradle: JVM Automation and Build Engineering lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- Gradle Installation & CLI
- Gradle Project Structure
- Tasks and Build Lifecycle
- Multi-Project Builds & the Settings File