首页 > 解决方案 > 如何检测 gradle 项目是属于应用程序还是库?

问题描述

我正在编写一个 Android Studio Gradle 插件,我需要做的一件事是遍历项目并检测它们是否属于 Android 应用程序或库类型(或非 android 项目,如通用 java 库)。

我尝试使用以下代码,但它不能正常工作(检测应用程序但不检测库):

import com.android.build.gradle.AppPlugin
import com.android.build.gradle.LibraryPlugin

...

public void getVariants(){
...
    def hasApp = p.plugins.withType(AppPlugin)
    def hasLib = p.plugins.withType(LibraryPlugin) 
    
    ...
}

Groovy 脚本中是否有其他适当的方法来检测项目是否属于库类型?

标签: androidandroid-studiogroovygradle-plugin

解决方案


project.afterEvaluate {
    plugins.withId('com.android.application') {
        println("==> module application")
    }
    plugins.withId('com.android.library') {
        println("==> module library")
    }
    plugins.withId('java') {
        println("==> module pure java")
    }
}

推荐阅读