【问题标题】:How do I know the properties in applicationVariants of android gradle plugin?我如何知道android gradle插件的applicationVariants中的属性?
【发布时间】:2016-08-08 22:06:40
【问题描述】:

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

DomainObjectSet applicationVariants

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

但是 ApplicationVariant 中的属性是什么?我不知道。而且我没有找到描述 ApplicationVariant 的参考链接。

仅在页面最底部的Gradle Plugin User Guide 中。它记录了 applicationVariants、libraryVariants 和 testVariants 中的可用属性。但我发现其中相当一部分属性已被弃用很长时间,Android 也没有更新此页面。

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

【问题讨论】:

    标签: android gradle android-gradle-plugin gradle-plugin


    【解决方案1】:

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

    【讨论】:

    • 非常感谢。它有助于。但我还有一个问题。似乎只在 ApplicationVariant 中显示属性。图书馆变体怎么样?我没有从你上面给我的链接中找到它。
    【解决方案2】:

    @CaptRespect 答案中的链接指向特定的构建。以下是 master 分支中公共 API 的链接:

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

    【讨论】:

      【解决方案3】:

      这里有一些关于这些的文档:

      【讨论】:

        猜你喜欢
        • 2019-01-18
        • 2017-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多