Philip Crotwell wrote:
Hi

Is there a easy way to compare two source sets to see if the first has
changed since the second was generated?

For example, I have some java that is generated from corba idl. It
would be nice to be able to make an idl source set and a java source
set within the project, and only run the idl compiler if the most
recent mod time in the idl source is after the the earliest mod time
in the java source set. Another case I have is generating html
documentation pages from a xml schema. I would like to only have that
done when the schema changes as it is somewhat time consuming.

I am sure some small amount of groovy could accomplish this, but as
the concept of "use X to generate Y, but only if X is newer than Y"
seems a pretty fundamental concept in a build system and so I was
hoping that this was already solved in Gradle.

Very nearly. This is what I am currently working on in trunk. There should be something working in the next few days.

Generally, there will be some way to declare the inputs and outputs of a task and the task will only be executed if the inputs have changed in some way since the outputs were generated.

I'm not sure of the exact syntax yet. For what we call enhanced tasks (those that you use by type such as Compile or Jar), we'll probably use annotations attached to the task's properties. For simple tasks, there'll be some way to say 'this task uses x as input' and 'this task generated y as output'.

We will also use this same information to automatically wire task dependencies together, so that a task will automatically depend on those tasks which produce it's input files.


--
Adam Murdoch
Gradle Developer
http://www.gradle.org


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

   http://xircles.codehaus.org/manage_email


Reply via email to