I have a project with several modules in it one of which is a Android Library named (poorly) as sdk
. When I build the project it outputs an AAR named sdk.aar
.
I haven't been able to find anything in the Android or Gradle documentation that allows me to change the name of the AAR output. I would like it to have a basename + version number like the Jar tasks do, but I can't work out how to do the same for the AAR because all the config for it seems to be hidden in the android.library plugin.
Renaming the module isn't an option at this stage and that still wouldn't add the version number to the final AAR.
How can I change the name of the AAR generated by com.android.library
in Gradle?
Gradle solution
defaultConfig {
minSdkVersion 9
targetSdkVersion 19
versionCode 4
versionName '1.3'
testFunctionalTest true
project.archivesBaseName = "Project name"
project.version = android.defaultConfig.versionName
}
In addition to qix answer here the info that you can add multiple output paths by this method by an regular string as well:
(Upvotes belong to qix - I just wrote this as an answer because of the readability).
For Android Studio 3 with Gradle 4 and Android Plugin for Gradle 3.0.0 you have to change the answer of qix to the following:
In my case, ${version} result in "unspecified", finnally I found ${defaultConfig.versionName} works.
As mentioned in comments below and another answer, the original answer here doesn't work with Gradle 3+. Per the docs, something like the following should work:
OLD ANSWER:
I am unable to get archivesBaseName & version to work for me w/ Android Studio 0.8.13 / Gradle 2.1. While I can set archivesBaseName and version in my defaultConfig, it doesn't seem to affect the output name. In the end, adding the following
libraryVariants
block to my android {} scope finally worked for me:with the build-plugin 1.5.0 it is now possible to use archivesBaseName in the defaultConfig