On 21/04/2011, at 4:06 AM, John Murph wrote: > Actually, this behavior change might be related to this (from the milestone 2 > release notes): > > DSL Improvements > > You can now specify the source files for a task through the DSL. Previously > this was only possible by using the @SkipWhenEmpty annotation on a custom > task class. The source files of a task are treated as input files. In > addition, the task is skipped if the set of source files is declared and > empty. > > > It looks like Gradle is considering the deploy tasks source files to be > declared and empty (hence the "as it has no source files" as the reason for > skipping). However, it looks like Steve is not declaring any source files > until the doFirst.
Exactly right. > I suspect that doing the "from ..." in a configuration closure and setting > the "into ..." in the doFirst will work. This should work. > If so, I think this might be a bug in milestone 1 that even if from() is > not called, the source files are considered declared (but empty). Or, I'm > miss-reading the release notes! > > > On Tue, Apr 19, 2011 at 3:51 PM, Spencer Allain <[email protected]> > wrote: > Since that is a task of type Sync, I'm surprised it ever worked, but I'm > guessing that it was like the JavaExec task recently identified to always > assume it was out-of-date, and that behavior was fixed in milestone-2. Since > no inputs or outputs are defined in the configuration phase, it seems that it > should attempt to skip it. > > You could simulate that behavior again by doing something like > deploy { > onlyIf { true } > } > > This should also work as well: > > deploy.onlyIf { true } > > Although, Adam will likely dig into the source and provide a better solution > later :-) > > -Spencer > > --- On Tue, 4/19/11, Steve Appling <[email protected]> wrote: > > From: Steve Appling <[email protected]> > Subject: [gradle-user] milestone 2 broke a task > To: [email protected] > Date: Tuesday, April 19, 2011, 11:43 AM > > > One of our tasks no longer works with milestone 2. Is anyone aware of an > intentional change that would have broken this, or is this a bug. > We have: > task deploy(description: 'Deploys the war to the webserver', type: Sync, > dependsOn:[war]) > deploy.doFirst { > println "Deploying $war.baseName to ${getDeployLoc().canonicalPath}" > from zipTree(war.archivePath) > into getDeployLoc() > } > > getDeployLoc is a helper method that needs to be only run if the deploy task > is run, so we don't want to call it during the configuration phase. > > This worked fine in milestone 1, but in milestone 2 I get "Skipping task > ':deploy' as it has no source files." > > -- > Steve Appling > Automated Logic Research Team > > > > > > --------------------------------------------------------------------- > To unsubscribe from this list, please visit: > > http://xircles.codehaus.org/manage_email > > > > > -- > John Murph > Automated Logic Research Team -- Adam Murdoch Gradle Co-founder http://www.gradle.org VP of Engineering, Gradleware Inc. - Gradle Training, Support, Consulting http://www.gradleware.com
