Как узнать свойства в applicationVariants плагина Android Gradle?

Я использую Android Studio с плагином Gradle для разработки приложений. Я узнал об использовании плагина Android Gradle в справочнике по DSL. Но одна вещь, которую я обнаружил, заключается в том, что часть applicationVariants в документе сложна для понимания. Дает только такое описание:

DomainObjectSet‹ApplicationVariant› варианты приложения

Список вариантов приложения. Поскольку коллекции создаются после оценки, их следует использовать с итератором all Gradle для обработки будущих элементов.

Но каковы свойства ApplicationVariant? Я не знаю. И я ничего не нашел справочной ссылки для описания ApplicationVariant.

Только в Руководстве пользователя плагина Gradle в самом низу страницы. Он документирует доступные свойства в applicationVariants, libraryVariants и testVariants. Но я обнаружил, что некоторые из этих свойств уже давно устарели, и Android не обновлял эту страницу.

Итак, где я могу найти самые последние свойства в ApplicationVariant?


person Tony Green    schedule 17.04.2016    source источник


Ответы (3)


https://android.googlesource.com/platform/tools/build/+/8dca86a/gradle/src/main/groovy/com/android/build/gradle/internal/ApplicationVariant.groovy

Я тоже с трудом нашел. Вот интерфейс, если он перемещается: он также будет иметь любые реквизиты, которые вы определяете в своем вкусе, такие как имя версии, идентификатор приложения и т. д.

public interface ApplicationVariant {
    String getName()
    String getDescription()
    String getDirName()
    String getBaseName()
    VariantConfiguration getConfig()
    boolean getZipAlign()
    boolean isSigned()
    boolean getRunProguard()
    FileCollection getRuntimeClasspath()
    FileCollection getResourcePackage()
    Compile getCompileTask()
    List<String> getRunCommand()
    String getPackage()
    AndroidBuilder createBuilder(AndroidBasePlugin androidBasePlugin)
}

И распечатать реквизит любого объекта:

def filtered = ['class', 'active']

println theObject.properties
            .sort{it.key}
            .collect{it}
            .findAll{!filtered.contains(it.key)}
            .join('\n')
person CaptRespect    schedule 29.04.2016
comment
Большое спасибо. Помогает. Но у меня есть еще один вопрос. Кажется, только отображать свойства в ApplicationVariant. Как насчет Библиотечного Варианта? Я не нашел его по ссылке, которую вы мне дали выше. - person Tony Green; 04.05.2016

Ссылка в ответе @CaptRespect относится к конкретной сборке. Вот ссылки на публичный API в ветке master:

/gradle/api/ApplicationVariant.java
(производный от) /gradle/api/ApkVariant.java
(производный от) /gradle/ API/BaseVariant.java

person MandisaW    schedule 23.01.2019

Вот некоторая документация по ним:

person Anton Breusov    schedule 12.11.2019