Как установить имя выхода AAR из Gradle

У меня есть проект с несколькими модулями, в одном из которых есть Android-библиотека, названная (плохо) как sdk . Когда я создаю проект, он выдает AAR с именем sdk.aar .

Я не смог найти что-либо в документации Android или Gradle, которая позволяет мне изменить имя выхода AAR. Я бы хотел, чтобы у него было имя базы + номер версии, например, задачи Jar, но я не могу решить, как сделать то же самое для AAR, потому что все настройки для него, похоже, скрыты в плагине android.library.

Переименование модуля на данном этапе не является вариантом, и это все равно не добавит номер версии в окончательный AAR.

Как я могу изменить имя AAR, сгенерированное com.android.library в Gradle?

Решёвое решение

 defaultConfig { minSdkVersion 9 targetSdkVersion 19 versionCode 4 versionName '1.3' testFunctionalTest true project.archivesBaseName = "Project name" project.version = android.defaultConfig.versionName } 

Solutions Collecting From Web of "Как установить имя выхода AAR из Gradle"

Я не могу получить archivesBaseName и версию для работы со мной с Android Studio 0.8.13 / Gradle 2.1 . Хотя я могу установить archivesBaseName и версию в свой defaultConfig, это, похоже, не влияет на имя вывода. В конце концов, добавление следующего блока libraryVariants к моей области андроида {}, наконец, сработало для меня:

 libraryVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile != null && outputFile.name.endsWith('.aar')) { def fileName = "${archivesBaseName}-${version}.aar" output.outputFile = new File(outputFile.parent, fileName) } } } 

В дополнение к qix ответьте здесь на информацию, которую вы можете добавить несколькими выходными путями этим методом с помощью обычной строки:

 libraryVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile != null && outputFile.name.endsWith('.aar')) { def fileName = "${archivesBaseName}-${version}.aar" output.outputFile = new File(outputFile.parent, fileName) output.outputFile = new File("/home/pepperonas/IdeaProjects/Libraries/Base/testapp/libs", fileName) } } } 

(Upvotes принадлежат qix – я просто написал это как ответ из-за читаемости).

С плагином build 1.5.0 теперь можно использовать archivesBaseName в defaultConfig