Hi Adam,
Am 03.06.2009 um 00:25 schrieb Adam Murdoch:
>
>
> Rene Groeschke wrote:
>> Hi there,
>> I've just added a new zip Task to my project. This task should
>> create a zip with all third-party libs in the lib folder of that
>> zip. actually my task looks like the following:
>>
>> task createBinZip(type: Zip) {
>> classifier = 'bin'
>> files(configurations.groovy)
>> fileSet(dir: 'build'){
>> include "**/*.jar"
>> }
>>
>> fileSet(dir: 'build/classes'){
>> include "**/*.sh"
>> }
>> }
>>
>> In the snippet above I add all files in the configuration groovy to
>> my zip. but how can I put all these third party libs to a special
>> folder in that zip for example called "libs".
>
> You can't easily do this yet. You need to copy them somewhere and
> then use a zipfileset to include them in the 'libs' folder of the
> archive.
>
> We plan to make this better in 0.7, so you could do something like:
In my opinion a clean readable zip task should only contain listings
of files / directories (FileCollection, FileSet, ZipFileSet, etc...)
which shall be included in that zip. No manual copying, renaming or
anything else should be necessary.
> task createBinZip(type: Zip) {
> libs {
> from(configurations.groovy)
> from('build') {
> include '**/*.jar'
> }
> }
> from(someDir) {
> ...
> }
> }
Your snippet works well. Thanks for that.
>
>> And can anybody explain, what's the difference between:
>>
>> files(configurations.groovy) and just
>> configurations.groovy ?
>>
>
> 'files(configurations.groovy)' adds the 'groovy' configuration as a
> file collection to be included in the archive, and
> 'configurations.groovy' is simply a property reference to the
> 'groovy' configuration, which does nothing with it. The second
> statement won't actually include the configuration in the archive.
>
> We could probably do some DSL magic so that you can include a file
> collection simply by referencing it in the archive's configure
> closure, so that the 2 statements above do the same thing. I'm not
> sure it's worth it - it could be just as effective, I think, to
> simply choose a better name for the files() method.
>
>> In Section 15.12. of the gradle docs I've found the following
>> sentence: "For example, the Configuration objects of a project
>> implement FileCollection . You can also obtain a FileCollection
>> using the method Project.files()"
>>
>> So instead of writing "files(configurations.groovy)" shouldn't it
>> be enough to write "configurations.groovy" in my zip task? What is
>> the meaning of "FileCollection Project.files(FileCollection fc)" ?
>>
>
> This would return a FileCollection which contains the same files as
> the supplied collection.
regards,
René
-----------------------------------
René Gröschke
rene@...
http://www.breskeby.com---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email