Synopses & Reviews
If youre familiar with Gradles basics elements—possibly through the authors previous OReilly book, Building and Testing with Gradle—this more advanced guide provides the recipes, techniques, and syntax to help you master this build automation tool. With clear, concise explanations and lots of ready-to-use code examples, youll explore four discrete areas of Gradle functionality: file operations, custom Gradle plugins, build lifecycle hooks, and dependency management.
Learn how to use Gradles rich set of APIs and Groovy-based Domain Specific Language to customize build software that actually conforms to your product. By using the techniques in this book, youll be able to write domain-specific builds that support every other line of code your team creates.
- Examine Gradles file API, including copy tasks, pattern matching, content filtering, and the FileCollection interface
- Understand the process for building and packaging a custom Gradle plug-in
- Manage build complexity with hook methods and Gradles rule feature
- Learn how Gradle handles dependency management natively and through customization
- Explore Gradles core plug-ins as well as key examples from the Gradle community
Synopsis
If you re familiar with Gradle s basics elements possibly through the author s previous O Reilly book, "Building and Testing with Gradle" this more advanced guide provides the recipes, techniques, and syntax to help you master this build automation tool. With clear, concise explanations and lots of ready-to-use code examples, you ll explore four discrete areas of Gradle functionality: file operations, custom Gradle plugins, build lifecycle hooks, and dependency management.
Learn how to use Gradle s rich set of APIs and Groovy-based Domain Specific Language to customize build software that actually conforms to your product. By using the techniques in this book, you ll be able to write domain-specific builds that support every other line of code your team creates.Examine Gradle s file API, including copy tasks, pattern matching, content filtering, and the FileCollection interfaceUnderstand the process for building and packaging a custom Gradle plug-inManage build complexity with hook methods and Gradle s rule featureLearn how Gradle handles dependency management natively and through customizationExplore Gradle s core plug-ins as well as key examples from the Gradle community"
Synopsis
One of Gradle's special strengths is its ability to let you define your own build vocabulary, rather than imposing its design on you. Domain-specific languages are great tools for turning your build process from mysticism into something that the entire team can understand. The result is that your build and deployment process becomes more reliable and predictable.
About the Author
Tim is a full-stack generalist and passionate teacher who loves coding, presenting, and working with people. He is founder and principal software developer at the August Technology Group, a technology consulting firm focused on the JVM. He is a speaker internationally and on the No Fluff Just Stuff tour in the United States, co-presenter of the best-selling O'Reilly Git Master Class, and is co-president of the Denver Open Source User Group. He has recently been exploring build automation, non-relational data stores, and abstract ideas like how to make software architecture look more like an ant colony. He lives in Littleton, CO with the wife of his youth and their three children.
Matthew McCullough is an energetic 15-year veteran of enterprise software development, world-traveling open source educator, and co-founder of Ambient Ideas, LLC, a US consultancy. Matthew currently is a trainer for Gradleware, educator for GitHub.com, author of the Git Master Class series for O'Reilly, speaker on the No Fluff Just Stuff tour, author of three of the top 10 DZone RefCards, including the Git RefCard, and President of the Denver Open Source Users Group.
His current topics of research center around project automation, including: build tools (Gradle, Leiningen, Maven, Ant), distributed version control (Git, Mercurial), testing frameworks (Geb, Spock, JUnit, TestNG, Mockito), continuous integration (Jenkins, Hudson, Bamboo) and code quality metrics (Sonar, CodeNarc, PMD).
Table of Contents
Preface; Conventions Used in This Book; Safari® Books Online; How to Contact Us; Acknowledgments; Chapter 1: File Operations; 1.1 Copy Task; 1.2 Filtering and Transforming Files; 1.3 The File Methods; 1.4 The FileCollection Interface; 1.5 Lazy Files; 1.6 Conclusion; Chapter 2: Custom Plug-Ins; 2.1 Plug-In Philosophy; 2.2 The Plug-In API; 2.3 The Example Plug-In; 2.4 Setup; 2.5 Sketching Out Your Plug-In; 2.6 Packaging a Plug-In; 2.7 Conclusion; Chapter 3: Build Hooks; 3.1 The Gradle Lifecycle: A Review; 3.2 Advising the Build Graph; 3.3 Advising Project Evaluation; 3.4 Rules; 3.5 Conclusion; Chapter 4: Dependency Management; 4.1 What Is Dependency Management?; 4.2 Dependency Concepts; 4.3 Repositories: Dependency Resolution; 4.4 Buildscript Dependencies; 4.5 Dependency Caching; 4.6 Configuring Resolution Strategy; 4.7 Conclusion; Afterword; Colophon;