Maven and Gradle
Maven uses convention, lifecycle phases, and XML project metadata. Gradle uses a programmable build model and supports Groovy or Kotlin DSLs.
mvn test
mvn package
./gradlew test
./gradlew build
A build should be reproducible: dependency versions should be controlled, generated artifacts should be deterministic where practical, and CI should run the same essential verification steps developers use locally.
Key Takeaways
- Build tools automate compilation, testing, packaging, and dependency resolution.
- Manage dependency versions intentionally.
- CI should execute reproducible verification steps.