HOME SCALA & F# JAVA .NET WEB GROOVY & GRAILS ANDROID & IOS NOSQL ARCHITECTURE AGILE & SCRUM AGILE DEVELOPER  
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.
PROGRAMME

Day 1

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
  • Closures

Gradle Introduction

  • The Gradle philosophy
  • Installing Gradle
  • Gradle build scripts
  • The build lifecycle
  • The Gradle build daemon

Tasks

  • Declaring tasks
  • Executing tasks
  • Configuring tasks
  • Implementing custom tasks
  • Extending tasks
  • Task dependencies
  • Task exclusion
  • Conditionally skipping tasks
  • The Task Graph API
  • Task rules

Logging

  • Controlling log levels
  • Logging from the build script
  • Logging from classes
  • Managing child process output

Day 2

Plugins

  • 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

Ant Integration

  • Gradle compared to Ant
  • When to utilize Ant in Gradle
  • Using Ant tasks in Gradle builds
  • Importing Ant builds
  • Migrating from Ant to Gradle

Dependency management

  • Terminology
  • 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

Day 3

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

  • Conventions
  • Product Flavors
  • Build Types
  • Build Variants
  • Library projects
  • Testing
  • Android Multi-module builds

Multiproject 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
NEXT SESSION
The next course will be delivered at The Skills Matter eXchange - London, on 09 Oct 2013 by Luke Daley.
COURSE DATES & REGISTRATION
Date City Cost (ex vat) Offer
09-10-13 London £1795.00 £1615.00 if booked before 10-08-13 Book Online Now
Book Online or Call Sales on +44 (0)207 1839040
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.

COURSE PREREQUISITES
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.

COURSE DATES & REGISTRATION
Date City Cost (ex vat) Offer
09-10-13 London £1795.00 £1615.00 if booked before 10-08-13 Book Online Now
Book Online or Call Sales on +44 (0)207 1839040

FOLLOW ON COURSES
SpringSource's Groovy and Grails Workshop
© Copyright 2003-2013, Skills Matter Ltd
About Us  Jobs  Find Us  Meeting & Training Rooms  Newsletter  Jobs: Sales Executive  Jobs: Student SkillsCaster  jobs - junior event coordinator  Open Source Journal  Jobs: Sponsorship Development  jobs: Marketing & Sales Graduate Internship  Jobs: HR Manager  jobs-Join Our Dev Team  DevOps Engineer  Front-End Engineer  Test Engineer