Book Image

Gradle Effective Implementation Guide

Book Image

Gradle Effective Implementation Guide

Overview of this book

Gradle is the next generation in build automation. It uses convention-over-configuration to provide good defaults, but is also flexible enough to be usable in every situation you encounter in daily development. Build logic is described with a powerful DSL and empowers developers to create reusable and maintainable build logic."Gradle Effective Implementation Guide" is a great introduction and reference for using Gradle. The Gradle build language is explained with hands on code and practical applications. You learn how to apply Gradle in your Java, Scala or Groovy projects, integrate with your favorite IDE and how to integrate with well-known continuous integration servers.Start with the foundations and work your way through hands on examples to build your knowledge of Gradle to skyscraper heights. You will quickly learn the basics of Gradle, how to write tasks, work with files and how to use write build scripts using the Groovy DSL. Then as you develop you will be shown how to use Gradle for Java projects. Compile, package, test and deploy your applications with ease. When you've mastered the simple, move on to the sublime and integrate your code with continuous integration servers and IDEs. By the end of the "Gradle Effective Implementation Guide" you will be able to use Gradle in your daily development. Writing tasks, applying plugins and creating build logic will be second nature.
Table of Contents (20 chapters)
Gradle Effective Implementation Guide
Credits
About the Author
Acknowledgement
About the Reviewers
www.PacktPub.com
Preface
Index

Default Gradle tasks


We created our simple build script with one task. We can ask Gradle to show us the available tasks for our project. Gradle has several built-in tasks we can execute. We type gradle -q tasks to see the tasks for our project:

hello-world $gradle -q tasks

-----------------------------------------------------
All tasks runnable from root project
-----------------------------------------------------

Help tasks
----------
dependencies - Displays the dependencies of root project 'hello-world'.
help - Displays a help message
projects - Displays the sub-projects of root project 'hello-world'.
properties - Displays the properties of root project 'hello-world'.
tasks - Displays the tasks runnable from root project 'hello-world' (some of the displayed tasks may belong to subprojects).

Other tasks
-----------
helloWorld

To see all tasks and more detail, run with --all.

Here, we see our task helloWorld in the Other tasks section. The Gradle built-in tasks are displayed in the Help tasks section. For example, to see some general help information, we execute the help task:

hello-world $ gradle -q help

Welcome to Gradle 1.1.

To run a build, run gradle <task> ...

To see a list of available tasks, run gradle tasks

To see a list of command-line options, run gradle --help

The properties task is very useful to see the properties available to our project. We haven't defined any property ourselves in the build script, but Gradle provides a lot of built-in properties. The following output shows some of the properties:

hello-world $ gradle -q properties

-----------------------------------------------------
Root project
-----------------------------------------------------

additionalProperties: {}
allprojects: [root project 'hello-world']
ant: org.gradle.api.internal.project.DefaultAntBuilder@6af37a62
antBuilderFactory: org.gradle.api.internal.project.DefaultAntBuilderFactory@16e7eec9
artifacts: org.gradle.api.internal.artifacts.dsl.DefaultArtifactHandler@54edd9de
asDynamicObject: org.gradle.api.internal.DynamicObjectHelper@4b7aa961
buildDir: /Users/mrhaki/Projects/gradle-book/samples/chapter1/hello-world/build
buildDirName: build
buildFile: /Users/mrhaki/Projects/gradle-book/samples/chapter1/hello-world/build.gradle
...

The dependencies task will show dependencies (if any) for our project. Our first project doesn't have any dependencies when we run the task, as the output shows:

hello-world $ gradle -q dependencies

-----------------------------------------------------
Root project
-----------------------------------------------------

No configurations

The projects task will display sub-projects (if any) for a root project. Our project doesn't have any sub-projects. So when we run the task projects, the output shows us that our project has no sub-projects.

hello-world $ gradle -q projects

-----------------------------------------------------
Root project
-----------------------------------------------------

Root project 'hello-world'
No sub-projects

To see a list of the tasks of a project, run gradle <project-path>:tasks
For example, try running gradle :tasks