WoooHaaaa
WoooHaaaa

Reputation: 20470

How do you custom the aar package name using Gradle?

The default package is xxx-debug.aar or xxx-release.aar, Is it possible to generate a package name like xxx-v0.12-release.aar?

Upvotes: 2

Views: 2853

Answers (4)

Tarun Anchala
Tarun Anchala

Reputation: 2742

Below code can be added in library build.gradle and rebuild project

android {
    defaultConfig {
        minSdkVersion ..
        targetSdkVersion ..
        versionCode ...
        versionName "1"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        consumerProguardFiles 'consumer-rules.pro'
    }

    libraryVariants.all { variant ->
        variant.outputs.all { output ->
        outputFileName = "${archivesBaseName}_${variant.name}_${defaultConfig.versionName}.aar"
    }
}}

Upvotes: 0

Monster Brain
Monster Brain

Reputation: 2119

I'm using Gradle 5+, and this one works for me

libraryVariants.all { variant ->
    variant.outputs.each { output ->
        output.outputFileName = "my-lib-${variant.name}-v${defaultConfig.versionCode}(${defaultConfig.versionName}).aar"
    }
}

Output will be

my-lib-release-v5(0.0.4).aar

Upvotes: 2

CarterChen247
CarterChen247

Reputation: 932

Try this:

android {
    compileSdkVersion ...

    defaultConfig {
        minSdkVersion ...
        targetSdkVersion ...
        versionCode 1
        versionName "0.0.1"
    }

    buildTypes {
        release {
            ...
        }
    }

    android.libraryVariants.all { variant ->
        variant.outputs.all { output ->
            if (outputFile != null && outputFileName.endsWith('.aar')) {
                outputFileName = "${archivesBaseName}-${variant.name}-${defaultConfig.versionName}.aar"
            }
        }
    }
}

Don't forget to re-build your project (Build->Rebuild Project)

Output will be like:

yourModuleName-debug-0.0.1.aar

Upvotes: 3

hchhabra
hchhabra

Reputation: 71

You can use the libraryVariants block and do something like below.

defaultConfig {
    ...
    versionCode xx
    versionName "yy.zz"
}

buildTypes {
    release {
        ...
        android {
            libraryVariants.all { variant ->
                variant.outputs.each { output ->
                    def outputFile = output.outputFile
                    if (outputFile != null && outputFile.name.endsWith('.aar')) {
                        def fileName = outputFile.name.replace("${variant.name}.aar",
                                "v${defaultConfig.versionName}-${variant.name}.aar")
                        output.outputFile = new File(outputFile.parent, fileName)
                    }
                }
            }
        }
    }
}

Upvotes: 2

Related Questions