| S.No |
Topic |
Sub-Topics |
| 1 | Introduction to Gradle | What is Gradle, History, Benefits, Gradle vs Maven, Use cases |
| 2 | Gradle Architecture | Build lifecycle, Gradle daemon, Project vs Task, Build cache, Plugin system |
| 3 | Installing Gradle | Manual installation, SDKMAN, Verify installation, Environment variables, Gradle wrapper |
| 4 | Gradle Wrapper | What is Gradle wrapper, Advantages, Wrapper scripts, Version management, Usage in projects |
| 5 | Gradle Build Scripts | build.gradle file, Groovy DSL, Kotlin DSL, Task definitions, Script structure |
| 6 | Gradle Tasks | What is a task, Default tasks, Custom tasks, Task dependencies, Task lifecycle |
| 7 | Project Structure | Single-project build, Multi-project build, Settings.gradle, Source sets, Directory conventions |
| 8 | Dependency Management | Adding dependencies, Configuration, Dependency types, Repositories, Transitive dependencies |
| 9 | Gradle Plugins | Applying plugins, Built-in plugins, Third-party plugins, Custom plugins, Plugin DSL |
| 10 | Java Project Setup | Java plugin, Source sets, Compiling Java code, Running tests, JAR packaging |
| 11 | Groovy & Kotlin Projects | Groovy plugin, Kotlin plugin, Compiling, Testing, Packaging |
| 12 | Testing in Gradle | Unit testing, Test tasks, JUnit integration, Test reports, Test logging |
| 13 | Gradle Build Lifecycle | Initialization phase, Configuration phase, Execution phase, Task graph, Lifecycle hooks |
| 14 | Incremental Builds | What is incremental build, Inputs & outputs, Up-to-date checks, Avoiding unnecessary tasks, Build caching |
| 15 | Multi-Project Builds | Settings.gradle, Subprojects, Project dependencies, Task dependencies, Multi-project best practices |
| 16 | Gradle Properties | gradle.properties file, System properties, Project properties, Environment variables, Overriding properties |
| 17 | Custom Tasks | Task creation, Task type, doLast/doFirst, Inputs and outputs, Task dependencies |
| 18 | Gradle Build Scans | Enabling build scans, Publishing build scans, Analyzing performance, Task execution insights, Best practices |
| 19 | Gradle Profiles & Environments | Environment-specific properties, Conditional tasks, Profiles in Gradle, Build variants, Configurations |
| 20 | Dependency Management Strategies | Dependency constraints, Version conflict resolution, Dynamic versions, Locking dependencies, BOM usage |
| 21 | Publishing Artifacts | Maven plugin, Ivy plugin, Publishing to local repo, Publishing to remote repo, Metadata configuration |
| 22 | Gradle Caching | Build cache, Local cache, Remote cache, Configuring cache, Cache best practices |
| 23 | Continuous Integration | Integrating with Jenkins, GitLab CI/CD, GitHub Actions, Pipeline configuration, Automating builds |
| 24 | Code Quality Plugins | Checkstyle, PMD, SpotBugs, SonarQube integration, Enforcing code standards |
| 25 | Gradle Logging & Debugging | Logging levels, --info, --debug, --scan, Troubleshooting build failures |
| 26 | Dependency Insight & Reports | Dependency report, Task report, Insight report, Resolving conflicts, Visualizing dependencies |
| 27 | Gradle Kotlin DSL | Difference from Groovy DSL, build.gradle.kts, Type safety, Auto-completion, Migration from Groovy |
| 28 | Advanced Gradle Scripting | Custom plugins, Extending tasks, Conditional logic, Loops in scripts, Reusable script snippets |
| 29 | Performance Optimization | Parallel execution, Configuration on demand, Avoid unnecessary tasks, Dependency optimization, Profiling builds |
| 30 | Hands-on Project | Create Java project, Add dependencies, Configure plugins, Run tests, Package and publish artifact |