On 24/03/10 11:28 PM, Jesse Eichar wrote:
Hi,
I am copying some files and applying a filter to them. I want the
task to depend on the file that contains the ReplaceTokens so I added
an upToDateWhen closure. But it is ignored. Here is my tasks in my
build.gradle file:
task filtering(type:Copy) {
from file('src/main/filtered-webapp')
into "$buildDir/webapp"
inputs.dir('filters')
def properties = new Properties()
file('filters/global-resource.filter').withReader {
properties.load(it)
}
filter(org.apache.tools.ant.filters.ReplaceTokens, tokens: properties)
outputs.upToDateWhen { task ->
false
}
}
Is this a bug?
Probably a bug. I'll have a look into it.
What's you intention here? Do you really want the copy task to run
regardless of what's changed? Or do you want it to run only when the
source files in 'src/main/filtered-webapp' change or the properties in
'filters/global-resource.filters' change?
You should be able to do this:
task filtering(type:Copy) {
from file('src/main/filtered-webapp')
into "$buildDir/webapp"
def properties = new Properties()
file('filters/global-resource.filter').withReader {
properties.load(it)
}
filter(org.apache.tools.ant.filters.ReplaceTokens, tokens: properties)
}
And it should just work. However, I haven't quite gotten around to
wiring up the filter() stuff into the up-to-date checking, so Gradle
will currently will ignore changes in the properties when deciding if
the task is up-to-date or not. In the meantime, you can add to the task
{ } closure
inputs.properties properties
and Gradle will check if the properties have changed since last time the
task was executed.
--
Adam Murdoch
Gradle Developer
http://www.gradle.org
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email