Hi Rene,

On Wed, Feb 16, 2011 at 4:20 PM, Rene Groeschke <[email protected]> wrote:

> Hi Brett,
> I don't see any question in your post. In your provided example, you
> define a pmd task for each subproject. running "gradle pmd" executes all
> of them. for details have a look at
>
> http://gradle.org/0.9.2/docs/userguide/userguide_single.html#multi_project_builds
>

Sorry, the question was left out "Why does gradle run ALL custom tasks in
subprojects, whether I call them or not" - as mentioned in my original
email, "When I run ANYTHING on the parent, all subprojects execute PMD"

My understanding of grade is that only invoked tasks will be called if there
are no task dependencies. I have just tested by replacing my build.gradle
with a much simpler one, is this behaviour correct below (i.e. the defined
tasks are always called, even when I only call the 'tasks' task)?

subprojects {
   apply plugin: 'java'

   version = project.parent.version

   task customOne {
      println "ONE: I am $project.name"
   }

   task customTwo {
      println " - TWO: My parent is $project.parent.name"
   }
}

Thats all that I have in my build.gradle. When I run "gradle tasks", i get
the following output:

[me@host proj1]$ gradle tasks
ONE: I am project-api
 - TWO: My parent is proj1
ONE: I am project-client
 - TWO: My parent is proj1
ONE: I am project-model
 - TWO: My parent is proj1
ONE: I am project-server
 - TWO: My parent is proj1
:tasks

------------------------------------------------------------
Root Project
------------------------------------------------------------
/// The rest of "tasks" output is displayed.


So the question is: how should I correctly configure tasks so they are not
executed by every gradle call, but only when passed as an argument to
gradle?


>
> regards,
> René
>
> Am 16.02.11 15:04, schrieb Brett Cave:
> > I have a multi project gradle project, and have defined a task in the
> > parent:
> >
> > // start
> > subprojects {
> >    apply plugin: 'java'
> >    apply plugin: 'code-quality'
> >
> >    configurations { pmdConf }
> >    dependencies { pmdConf 'pmd:pmd:4.2.5' }
> >
> >    task pmdCheck {
> >       println "Running PMD code check on " + project.name
> >       ant {
> >           // the ant definition for pmd in here: a taskdef with name
> pmdTask
> > and then invoking the task.
> >       }
> >    }
> > }
> >
> > // end build.gradle
> >
> >
> > When I run anything on the parent, PMD is executed:
> > e.g. gradle compileJava
> > "Running PMD code check on subproject1"
> > "Running PMD code check on subproj2"
> > "Running PMD code check on subproj3"
> >
>
>
> --
> ------------------------------------
> Rene Groeschke
>
> [email protected]
> http://www.breskeby.com
> http://twitter.com/breskeby
> ------------------------------------
>
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>    http://xircles.codehaus.org/manage_email
>
>
>

Reply via email to