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

2022-09-01 18:29:09

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

allprojects {
    apply plugin: 'java'
}

为所有项目指定。

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

以下是项目布局的粗略概述

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

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


答案 1

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

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

答案 2

您也可以通过以下方式执行以下操作:

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

推荐