提问者:小点点

Gradle排除特定子项目的主项目中的插件


我正在处理一个包含许多子项目的大型项目,这些子项目都是用gradle构建的。通常所有项目都是java项目,因此在主build. gradle脚本中

allprojects {
    apply plugin: 'java'
}

为所有项目指定。

但是,我需要删除项目的某个子树的插件,或者从插件中显式排除项目。

这是项目布局的大致概述

+ Main
+-- javaApplications
+-- javaLibs
+-- Android
+-----AndroidApps
+-----AndroidLibs

Android/*不需要java插件。实现这一点的最佳解决方案是什么?注意:我不能更改项目结构。


共2个答案

匿名用户

这应该可以做到这一点(当放置在rootbuild. gradle脚本中时)

configure(allprojects - project(':Android')) { //or ':Android:AndroidApps' not sure
    println "applying java plugin to $project"
    apply plugin: 'java'  
}

匿名用户

您也可以这样做:

allprojects {
    if (!it.name.startsWith('Android')) {
        apply plugin: 'java'
    }
}