Gradle - time for another build

Embed Size (px)

Citation preview

  1. 1. buildGradletime for another build!Igor KhotinE-mail: [email protected]
  2. 2. What do we use? Ant? Maven? Gradle? ...
  3. 3. Any problems? heavy builds? long integration cycles? build projects support? build projectsintegration? ...
  4. 4. How we used to build?
  5. 5. punchcards...
  6. 6. give them to an operator
  7. 7. waiting for result...
  8. 8. take the printouts...
  9. 9. debug?
  10. 10. 1977 make
  11. 11. 2000
  12. 12. ant Complexity
  13. 13. Complexityhard to reuseant
  14. 14. Complexityhard to reuseantheavy build.xml's
  15. 15. Complexityhard to reuseantheavy build.xml'sTotal Control
  16. 16. 2001
  17. 17. mavenconvention over configuration
  18. 18. mavenmaven centralconvention over configuration
  19. 19. mavenconvention over configurationdependency managementmaven central
  20. 20. maven heavy xml'sconvention over configurationdependency managementmaven central
  21. 21. maven heavy xml'shard to implementcustom behavior maven centralconvention over configurationdependency management
  22. 22. maven heavy xml'shard to implementcustom behaviorconvention over configurationdependency managementlost controlmaven central
  23. 23. Gradle yesterday Founder - Hans Dockter 2008 early releases 2010 Springy Innovation Award June 2012 Gradle 1.0 July 2014 Gradle 2.0
  24. 24. Gradle today 2.1 released on September, 2014 Active community Gradleware Apache License, Version 2.0
  25. 25. Gradle in the wild
  26. 26. What is Gradle? Build integration tool Declarative builds Groovy-based build DSL Build-by-convention
  27. 27. What is Gradle? Scalable multi-project builds Dependency management Ease of migration Embeddable Deep API
  28. 28. Gradle positioning
  29. 29. Build scripts are code
  30. 30. Groovy and Gradlebuild.gradletask count gradle -q count0 1 2 3
  31. 31. gradle task != ant taskgradle task == ant target
  32. 32. Build tree
  33. 33. Dependenciestask build