Hans Dockter's Gradle In-Depth (GRADLE-01-03)
CODE: GRADLE-01-03 DURATION: 3 DAY/S
Join us for this 3-day Gradle course to learn how to use the Gradle build system to increase your productivity (tremendously). This Gradle training class first runs through some Groovy fundamentals and then moves quickly into thorough in-depth coverage of the Gradle build system including an extended module on how to work with the new Gradle based Android build system as well as an introduction on using the Gradle Scala plugin.
You'll spend a significant portion of the class with your hands on the keyboard, learning by doing, working through lab exercises designed to build on the presented material and explore the depths of Gradle.. This class can take you from complete newcomer status to Gradle competence. Due to the in-depth treatment of the topics it is also very suitable for people who have already Gradle experience. The class will be delivered by a Gradle Core Developer which gives you access to the deepest Gradle knowledge available. No question will remain unanswered.
If you are an experienced Java, Scala or Android developer and you would like to learn how to build and automate your projects with Gradle - in a Gradle course authored by the founder and creator of the Gradle project, this is a good Gradle course for you.
LEARN HOW TO:
- use the core Gradle DSL types.
- work with external dependencies.
- use build-in tasks and plugins.
- hook into the build lifecycle.
- integrate with Ant and Maven.
- use the sophisticated Gradle logging engine to maintain a clean build output.
- use Gradle's powerful file system abstractions.
- apply best practices for maintainable builds.
- work with multi-project builds.
- achieve highly performing builds.
- create a zero-administration environment for Gradle builds.
The Gradle Project
- About the project
- Documentation / Resources / Support
The Groovy Language
- Executing Groovy code
- Syntax basics
- Dynamic typing
- Domain Specific Languages & Gradle
- Groovy JDK extensions
- The Gradle philosophy
- Installing Gradle
- Gradle build scripts
- The build lifecycle
- The Gradle build daemon
- Declaring tasks
- Executing tasks
- Configuring tasks
- Implementing custom tasks
- Extending tasks
- Task dependencies
- Task exclusion
- Conditionally skipping tasks
- The Task Graph API
- Task rules
- Controlling log levels
- Logging from the build script
- Logging from classes
- Managing child process output
- What are Gradle plugins?
- The role of plugins
- Packaging and distributing plugins
- Review of core plugins
Working with files
- The file tasks (e.g. Copy, Sync)
- Filtering, excluding, aggregating, renaming
- Working with CopySpecs
- Expanding and making archives (zip, tar etc.)
- The Gradle file APIs
- Best practices for working with files
- Gradle compared to Ant
- When to utilize Ant in Gradle
- Using Ant tasks in Gradle builds
- Importing Ant builds
- Migrating from Ant to Gradle
- Repositories, metadata and transitive dependencies
- Dependency configurations
- Declaring dependencies
- Customizing dependency resolution & conflict management
- Publishing artifacts (Maven & Ivy)
Extending the model
- Extending existing objects
- Object extensions
- Object containers & configuration rules
Task inputs & outputs
- The power of the input/output model
- Describing inputs and outputs
- Incremental builds
- Inferring task dependencies
The Java plugin
- Source sets
- Project conventions
- Automated testing
- Building JARs
The Scala plugin
- Project conventions
- Making Scala builds fast
- Automated Testing
The Android plugin
- Product Flavors
- Build Types
- Build Variants
- Library projects
- Android Multi-module builds
- Defining a multiproject build
- Avoiding duplicate configuration with configuration injection
- Inter project dependencies
- Downstream and upstream partial builds
The build runtime
- Extending all builds with init scripts
- Init script locations
- Using the Gradle wrapper
- Customising the Gradle distribution with init scripts
ABOUT THE AUTHOR
Hans Dockter is the founder and project lead of the Gradle build system and the CEO of Gradleware Inc, a company that provides training, support and consulting for Gradle and all forms of enterprise software project automation in general.
More about Hans Dockter
IN PARTNERSHIP WITH GRADLEWARE INC
IS THIS COURSE FOR YOU?
If you have an interest in building and automating Java projects and want to learn about a build system that tremendously increases your productivity, this is the course for you.
This Gradle course assumes a good understanding of the Java language. Some code is initially easier to understand if you also have a basic understanding of the Groovy language. But due to Groovy's similarity to Java, Groovy is not a prerequisite. There will be a very short introduction to Groovy at the beginning of the course.
COURSE LABS & EXERCISES
Lectures, discussions & practical exercises, with a heavy emphasis on gaining practical skills.
FOLLOW ON COURSES
SpringSource's Groovy and Grails Workshop
© Copyright 2003-2013, Skills Matter Ltd