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

时间:2014-04-07 08:07:13

标签: java android gradle build.gradle

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

allprojects {
    apply plugin: 'java'
}
为所有项目指定了

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

这是对项目布局的粗略概述

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

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

2 个答案:

答案 0 :(得分:31)

这应该可以解决问题(当放在root build.gradle脚本中时)

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

答案 1 :(得分:8)

您也可以这样做:

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