Lesson 21 / 38

Maven & Gradle

Compare Maven and Gradle for Java builds — transitive dependency resolution, the standard layout and lifecycle phases, and Gradle's incremental build cache.

What they give you

Declarative dependencies with transitive resolution from Maven Central, a standard directory layout, a phased lifecycle (compile → test → package → verify → install), and a plugin ecosystem. Maven is XML and convention-heavy; Gradle uses a Groovy/Kotlin DSL and an incremental build cache.

Transitive conflicts

Two dependencies can pull different versions of the same library. Maven resolves by nearest wins (with dependencyManagement/BOMs to pin versions explicitly); Gradle picks the highest version by default. Always run a dependency-tree report before shipping to catch surprises.