<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title><![CDATA[Santosh Gokak]]></title>
  <link href="http://santoshgokak.github.io/atom.xml" rel="self"/>
  <link href="http://santoshgokak.github.io/"/>
  <updated>2014-11-09T02:42:49-05:00</updated>
  <id>http://santoshgokak.github.io/</id>
  <author>
    <name><![CDATA[Santosh Gokak]]></name>
    
  </author>
  <generator uri="http://octopress.org/">Octopress</generator>

  
  <entry>
    <title type="html"><![CDATA[Gradle : How to Modify Tasks Post Task Graph Creation]]></title>
    <link href="http://santoshgokak.github.io/blog/2014/11/09/gradle-how-to-modify-tasks-post-task-graph-creation/"/>
    <updated>2014-11-09T02:16:28-05:00</updated>
    <id>http://santoshgokak.github.io/blog/2014/11/09/gradle-how-to-modify-tasks-post-task-graph-creation</id>
    <content type="html"><![CDATA[<p>Gradle allows you to script your build file and add hooks in to the build lifecycle so you can maximize flexibility without compilcating build setup and tasks.
One of the useful ways to manipulate all tasks once they are loaded by gradle into task execution graph is to use the whenReady lifecycle hook which gets called when gradle populates the complete tasks execution graph.This also allows you to dynamically modify task properties, add new properties,etc. This comes helpful when you need to manipulate some tasks based on the user arguments passed in the project.</p>

<p>Below is the snippet that you need to add tomake this work:</p>

<figure class='code'><figcaption><span>build.gradle</span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
</pre></td><td class='code'><pre><code class='groovy'><span class='line'><span class="n">gradle</span><span class="o">.</span><span class="na">taskGraph</span><span class="o">.</span><span class="na">whenReady</span> <span class="o">{</span>
</span><span class='line'>  <span class="n">tasks</span><span class="o">.</span><span class="na">each</span> <span class="o">{</span>
</span><span class='line'>    <span class="n">it</span><span class="o">.</span><span class="na">doFirst</span> <span class="o">{</span>
</span><span class='line'>      <span class="n">println</span> <span class="s2">&quot;Calling ${it.name}&quot;</span>
</span><span class='line'>    <span class="o">}</span>
</span><span class='line'>  <span class="o">}</span>
</span><span class='line'><span class="o">}</span>
</span></code></pre></td></tr></table></div></figure>


<figure class='code'><figcaption><span>Output:</span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
<span class='line-number'>23</span>
</pre></td><td class='code'><pre><code class='text'><span class='line'>sgokak@sgokak-ThinkPad-T430 ~/myspace/gradle-in-action/Todo $ gradle build
</span><span class='line'>:compileJava
</span><span class='line'>Calling compileJava
</span><span class='line'>:processResources UP-TO-DATE
</span><span class='line'>:classes
</span><span class='line'>Calling classes
</span><span class='line'>:war
</span><span class='line'>Calling war
</span><span class='line'>:assemble
</span><span class='line'>Calling assemble
</span><span class='line'>:compileTestJava UP-TO-DATE
</span><span class='line'>:processTestResources UP-TO-DATE
</span><span class='line'>:testClasses
</span><span class='line'>Calling testClasses
</span><span class='line'>:test UP-TO-DATE
</span><span class='line'>:check
</span><span class='line'>Calling check
</span><span class='line'>:build
</span><span class='line'>Calling build
</span><span class='line'>
</span><span class='line'>BUILD SUCCESSFUL
</span><span class='line'>
</span><span class='line'>Total time: 10.185 sec
</span></code></pre></td></tr></table></div></figure>

]]></content>
  </entry>
  
</feed>
