Sbonelo
Sbonelo

Reputation: 684

Android gradle Copy from more that one directory into one .jar

I want to copy from more than one directory int one .Jar file:

So that all the .class files in both directories are bundles into one .jar file, is this possible?

task makeJar(type: Copy)
    from('directory1') && (directory2)
    into('another directory')
    include('classes.jar')

I can copy from one directory like this:

task makeJar(type: Copy)
    from('directory1')
    into('another directory')
    include('classes.jar')

Upvotes: 1

Views: 1614

Answers (1)

Jared Burrows
Jared Burrows

Reputation: 55555

For Android:

Command:

gradlew jarDebug / gradlew jarRelease

Code:

android.libraryVariants.all { variant ->
    task("jar${variant.name}", type: Jar) {
        description "Bundles compiled .class files into a JAR file for $variant.name."
        dependsOn variant.javaCompile
        from variant.javaCompile.destinationDir
        exclude '**/R.class', '**/R$*.class', '**/R.html', '**/R.*.html'
    }
}

Source: https://stackoverflow.com/a/19967914/950427

Java or Android Project:

task makeJar(type: Copy) {
    from('directory1/')
    from('directory2/')

    into('another directory/')
    include('classes.jar')
}

Similar: https://stackoverflow.com/a/19037807/950427

Example:

task initConfig(type: Copy) {
    from('src/main/config') {
        include '**/*.properties'
        include '**/*.xml'
        filter(ReplaceTokens, tokens: [version: '2.3.1'])
    }
    from('src/main/config') {
        exclude '**/*.properties', '**/*.xml'
    }
    from('src/main/languages') {
        rename 'EN_US_(.*)', '$1'
    }
    into 'build/target/config'
    exclude '**/*.bak'

    includeEmptyDirs = false

    with dataContent
}

Source: http://gradle.org/docs/current/dsl/org.gradle.api.tasks.Copy.html

Upvotes: 4

Related Questions