Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to change destination folder in zip for gradle distribution plugin [duplicate]

I created a simple Gradle build that exports the contents of ./src/main/groovy to a zip file. The zip file contains a folder with the exact same name as the zip file. I cannot figure out how to get the files into the root of the zip file using the distribution plugin.

i.e. gradlew clean distZip produces:

helloDistribution-1.0.zip -> helloDistribution-1.0 -> files

what I would like:

helloDistribution-1.0.zip -> files

My build.gradle file:

apply plugin: 'groovy'
apply plugin: 'distribution'

version = '1.0'

distributions {
    main {
        contents {
            from {
                'src/main/groovy'
            }
        }
    }
}

I have attempted to fix the problem by adding into { 'dir' } but to no avail.

like image 302
mark Avatar asked Jun 30 '14 18:06

mark


2 Answers

Using into '/' seems to do the trick:

contents {
    from {
        'src/main/groovy'
    }
    into '/'
}
like image 98
penfold Avatar answered Oct 13 '22 11:10

penfold


Unfortunately, penfold's answer did not work for me. Here is the solution I came up with:

task Package(type: Zip) {

    from {
        def rootScriptFiles = [] // collection of script files at the root of the src folder
        new File('src/main/groovy/').eachFile { if (it.name.endsWith('.groovy')) rootScriptFiles.add(it) }


        ['build/libs/',                 // build binaries
         'src/res/',                    // resources
         rootScriptFiles,               // groovy root source files
        ]
    }
    baseName = pluginName
}
like image 32
mark Avatar answered Oct 13 '22 11:10

mark