web-dev-qa-db-ja.com

特定のサブプロジェクトのメインプロジェクトのGradle除外プラグイン

私はすべてgradleでビルドされた多くのサブプロジェクトを含むより大きなプロジェクトに取り組んでいます。通常、すべてのプロジェクトはJavaプロジェクトであるため、メインのbuild.gradleスクリプト内にあります

allprojects {
    apply plugin: 'Java'
}

すべてのプロジェクトに指定されています。

ただし、プロジェクトの特定のサブツリーのプラグインを削除するか、プラグインからプロジェクトを明示的に除外する必要があります。

プロジェクトレイアウトの概要

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

Android/*はJavaプラグインを必要としません。これを実現するための最良の解決策は何ですか?注:プロジェクト構造を変更することはできません。

20
nfusion

これはトリックを実行するはずです(ルートに配置した場合build.gradle 脚本)

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

次のようにすることもできます:

allprojects {
    if (!it.name.startsWith('Android')) {
        apply plugin: 'Java'
    }
}
9
Taras Leskiv