hi Steve, indeed.. :-)
thanks for the tip! i will try to make some time to study the hibernate build file to see how you do this. i must say this gradle community rocks. lots of friendly folks helping each other out.. / Eitan On Thu, Apr 14, 2011 at 9:36 AM, Steve Ebersole <[email protected]> wrote: > Hi Eitan, long time! :) > > Just wanted to point out that another option is to define the copyspec > separately and have individual tasks for each zip along with a "grouping > task" that defines deps on the separate tasks. This is exactly what I do to > build the Hibernate release bundles. I can point you to the build or copy > in snippets if this approach interests you. > > On Apr 13, 2011 12:11 PM, "Eitan Suez" <[email protected]> wrote: >> hello, >> >> i'm a gradle newb. first of all i'd like to say thank you for gradle. >> >> i'm trying to write a task that creates a set of zip files, one per >> environment. something like this: >> >> task packageEnvironments { >> description = "Package environment-specific artifacts." >> >> doLast { >> ['branch', 'stage', 'production', 'released'].each { envName -> >> println "Packaging runtime environment: ${envName}" >> zip { >> appendix = envName >> into "catalina/${envName}" >> from "env/webapp/${envName}/catalina" >> into('lib') { >> from configurations.deploy2CatalinaLib >> } >> } >> } >> } >> } >> >> except that, unlike the project.copy() action, there's no >> project.zip() action. i sure would like one. >> further, i can't even figure out *how* to do this in gradle without >> a zip action. >> so far, i'm trying to coerce a task as an action like this: >> >> task packageEnvironments { >> description = "Package environment-specific artifacts." >> >> doLast { >> task zipIt(type: Zip) >> ['branch', 'stage', 'production', 'released'].each { envName -> >> println "Packaging runtime environment: ${envName}" >> zipIt.configure { >> appendix = envName >> into "catalina/${envName}" >> from "env/webapp/${envName}/catalina" >> into('lib') { >> from configurations.deploy2CatalinaLib >> } >> } >> zipIt.execute() >> } >> } >> } >> >> and it doesn't work. it produces the first zip file, but is a no-op >> for the remainder >> (perhaps because the inputs/outputs have already been set and perhaps are >> immutable and so the next time around it figures the task is >> perhaps up to date?). >> >> my experience *so far* with gradle is wonderful, with this one exception. >> >> the main disconnect i have is wanting to compose tasks, >> wanting to invoke a task or think of a task as a function or something >> one can parameterize. but can't. perhaps i shouldn't and that's fine. >> >> but sometimes there are all these tasks that one just wants to execute >> and can't because they're not executable like functions are. >> >> perhaps what i'm asking for is action versions of the various tasks >> that gradle exposes? i.e. a copy action (we have), a zip action (is >> there such >> a thing?), an exec action (?).. >> >> often i find myself falling back to using an antbuilder task even when >> a gradle equivalent exists because i can treat an ant task as an action, >> something i can invoke with its configurations as arguments. i.e. i >> often cannot >> figure out how to use the gradle equivalent properly. >> >> anyhow, thanks in advance for any help figuring out how to get this 'zip >> in >> a for loop' task working. >> >> / eitan >> >> --------------------------------------------------------------------- >> To unsubscribe from this list, please visit: >> >> http://xircles.codehaus.org/manage_email >> >> > --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email
