我如何知道android gradle插件的applicationVariants中的属性?
Posted
技术标签:
【中文标题】我如何知道android gradle插件的applicationVariants中的属性?【英文标题】:How do I know the properties in applicationVariants of android gradle plugin? 【发布时间】: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 中最新的属性?
【问题讨论】:
【参考方案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
.sortit.key
.collectit
.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】:这里有一些关于这些的文档:
ApplicationVariant: BaseVariant ApkVariant【讨论】:
以上是关于我如何知道android gradle插件的applicationVariants中的属性?的主要内容,如果未能解决你的问题,请参考以下文章
Android Gradle 插件版本所需的 Gradle 版本 和下载地址
使用android productFlavors时,sonarqube gradle插件异常