Gradle 模块类型

Gradle module type

我有一个多模块项目。有两种类型的模块:Java库(apply plugin: 'java-library')和Android库(apply plugin: 'com.android.library')。我有一个自定义 gradle 任务,我需要以某种方式获取模块类型。我需要检查哪个模块 属性?

没有"module type property",不过你可以问问插件管理器哪些插件已经应用到项目中了。例如,为了检查它是否是一个 Java 项目:

public boolean isJavaProject(final Project pProject)
{
    PluginManager pluginManager = pProject.getPluginManager();
    return pluginManager.hasPlugin("java") ||
           pluginManager.hasPlugin("org.gradle.java");
}

同样的想法可以应用于检查其他插件类型。

我有类似的情况,我必须区分 Android 和 Java/Kotlin 模块。

我用过这个:
private fun Project.isAndroidModule(): Boolean = this.hasProperty("android")