You are previewing Building and Testing with Gradle.

Building and Testing with Gradle

Cover of Building and Testing with Gradle by Tim Berglund... Published by O'Reilly Media, Inc.
  1. Building and Testing with Gradle
  2. Dedication
  3. SPECIAL OFFER: Upgrade this ebook with O’Reilly
  4. Foreword
  5. Preface
    1. Introduction
    2. Conventions Used in This Book
    3. Using Code Examples
    4. Safari® Books Online
    5. How to Contact Us
    6. Acknowledgments from Tim Berglund
    7. Acknowledgments from Matthew McCullough
  6. 1. Hello, Gradle!
    1. Build Files in Groovy
    2. Domain-Specific Build Languages
    3. Getting Started
      1. MacOS Installation with Brew
      2. Linux and MacOS Installation
      3. Windows Installation
    4. The Hello World Build File
    5. Building a Java Program
    6. The Gradle Command Line
  7. 2. Gradle Tasks
    1. Declaring a Task
    2. Task Action
    3. Task Configuration
    4. Tasks Are Objects
      1. Methods of DefaultTask
      2. Properties of DefaultTask
      3. Dynamic Properties
    5. Task Types
      1. Copy
      2. Jar
      3. JavaExec
    6. Custom Task Types
      1. Custom Tasks Types in the Build File
      2. Custom Tasks in the Source Tree
    7. Where Do Tasks Come From?
    8. Conclusion
  8. 3. Ant and Gradle
    1. The Vocabulary
    2. Hello Ant
    3. Importing Custom Ant Tasks
    4. Complex Ant Configuration
    5. Importing an Entire Ant Build File
    6. Ant Target and Gradle Task Codependence
    7. Using AntBuilder
    8. A Harmonic Duo
  9. 4. Maven and Gradle
    1. Cue Graven?
    2. The Maven POM and Gradle Build
    3. Maven Goals, Gradle Tasks
    4. The Standard Maven Coordinates, Gradle Properties
    5. More Gradle Properties
    6. Dependencies
    7. Repositories
    8. Unit Testing
    9. Multiple Source Directories
    10. Default Tasks
    11. The Maven Plug-in
    12. Installing to the Local Maven Repository (Cache)
    13. Publishing to a Maven Repository
    14. Maven2Gradle Build Script Converter
    15. Maven POM Import
    16. Conclusion
  10. 5. Testing with Gradle
    1. JUnit
    2. TestNG
    3. Spock
    4. Geb and EasyB
    5. Gradle’s Testing Focus
  11. 6. Multiproject Builds
    1. Multiproject Build Structure
    2. Project-Specific Build Files
    3. One Master Build File
    4. A Hybrid Multiproject Build
    5. Individual, Unified, or Hybrid?
    6. Multiproject Task Structure
    7. Multiple Projects Your Way
  12. About the Authors
  13. Colophon
  14. SPECIAL OFFER: Upgrade this ebook with O’Reilly
  15. Copyright

Chapter 2. Gradle Tasks

Inside of a Gradle build file, the fundamental unit of build activity is the task. Tasks are named collections of build instructions that Gradle executes as it performs a build. You’ve already seen examples of tasks in Chapter 1, and they may seem like a familiar abstraction compared to other build systems, but Gradle provides a richer model than you may be used to. Rather than bare declarations of build activity tied together with dependencies, Gradle tasks are first-class objects available to you to program if you desire.

Let’s take a look at the different ways of defining a task, the two key aspects of task definitions, and the task API we can use to perform our own customization.

Declaring a Task

In the introduction, we saw how to create a task and assign it behavior all at the same time. However, there’s an even simpler way to create a task. All you need is a task name (Example 2-1).

Example 2-1. Declaring a task by name only

task hello

You can see the results of this by running gradle tasks (Example 2-2).

Example 2-2. Gradle’s report of the newly created task

 ------------------------------------------------------------ Root Project ------------------------------------------------------------ Help tasks ---------- dependencies - Displays the dependencies of root project 'task-lab'. help - Displays a help message projects - Displays the subprojects of root project 'task-lab'. properties - Displays the properties of root project 'task-lab'. tasks - Displays the ...

The best content for your career. Discover unlimited learning on demand for around $1/day.