我怎么知道android gradle插件的applicationVariants中的属性?

时间:2016-04-17 03:49:25

标签: android gradle android-gradle gradle-plugin

我使用带有gradle插件的Android Studio来开发应用程序。我在DSL Reference上学习了一些android gradle插件的用法。但我发现有一件事是doc上的applicationVariants部分很难理解。它只给出了这样的描述:

  

DomainObjectSet< ApplicationVariant> applicationVariants

     

应用程序变体列表。由于集合是在评估之后构建的,因此它应该与Gradle的所有迭代器一起使用来处理未来的项目。

但ApplicationVariant中的属性是什么?我不知道。我没有找到任何引用链接来描述ApplicationVariant。

仅限于页面底部的Gradle Plugin User Guide。它记录了applicationVariants,libraryVariants和testVariants中的可用属性。但我发现其中一些属性已经被弃用了很长时间,Android并没有更新此页面。

那么我在哪里可以找到ApplicationVariant中最新的属性?

3 个答案:

答案 0 :(得分:15)

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

我也很难找到它。这是它移动的界面: 它还将包含您在风格中定义的任何道具,例如versionName,applicationId等

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')

答案 1 :(得分:3)

@CaptRespect的答案中的链接指向特定的内部版本。以下是master分支中指向公共API的链接:

/gradle/api/ApplicationVariant.java
 (源自于) /gradle/api/ApkVariant.java
 (源自于) /gradle/api/BaseVariant.java

答案 2 :(得分:0)

有关这些的一些文档: