Skip to content

Latest commit

 

History

History
82 lines (54 loc) · 1.92 KB

gradle-basics.md

File metadata and controls

82 lines (54 loc) · 1.92 KB

Title: Gradle basics Tags: gradle, groovy, gradle-basics

You run grade tasks on the command line with

gradle -q taskName

If you remove -q it will output lots of verbose information.

Create a build.gradle file. A task is create like

task yourTask {
  doLast {
    print "Hey."
  }
}

Or more succinctly:

task yourTask << {
  // Steps
}

You can specify your dependencies with:

task yourTask(dependsOn: someTaskAbove) << {
  // Steps
}

If you haven't already specified the task, you can use it in quotes instead: 'someTaskAbove'.

You can issue normal Groovy code in the tasks or outside:

4.times { println "$it" }

Where "$it" is the iterator. You can also specify the iterator explicitly in Groovy:

4.times { counter -> println "$counter" }

You can even dynamically create tasks from code outside, or inside, any task block:

4.times { counter ->
            task "task$counter" << {
                    println "Dynamic task, innit: $counter."
            }
}

And you can define methods:

void someMethod() {
  // Code
}

You can access methods on tasks using their API:

task3.doFirst {
  // Some more code
}

You can add properties to tasks using the ext property in the task:

task3.doFirst {
  ext.aproperty = "Property, yo."
}

Then once you're in task3 you can reference ext.aproperty.

You can set properties before tasks are run based on what tasks are specified on the command line:

gradle.taskGraph.whenReady {taskGraph ->
    if (taskGraph.hasTask(release)) {
        version = '1.0'
    } else {
        version = '1.0-SNAPSHOT'
    }
}

Providing you have a 'release' task, and you call it on the command line, the build script will have '1.0' as its version property, otherwise it will have '1.0-SNAPSHOT'.

You can specify default tasks to run with:

defaultTasks 'atask', 'anothertask'