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

Reply via email to