有没有一种简单的方法可以立即配置 Gradle 插件(如果存在)或稍后添加(如果添加)?

Rya*_*n J 3 gradle

我有时会使用apply from: 'some/common/config.gradle'并希望有一种简单的方法来立即配置相关插件(如果它已经存在)或监视它的添加并稍后进行配置。我可以做我想做的事,但看起来有点混乱,因为我最终将配置复制/粘贴到两个位置。下面是我想要的,但我想知道是否有更好的方法。

def configured = false;

if(plugins.hasPlugin(ApplicationPlugin)) {
    run.classpath.add(configurations.jfxrt)

    startScripts {
        mainClassName = "com.javafx.main.Main"

        doLast {
            logger.warn(":${project.name}:startScripts:!! WARNING !!" +
                    " Replaced mainClassName with com.javafx.main.Main")
        }
    }

    configured = true
}

else {
    plugins.whenPluginAdded { plugin ->
        if(plugins.hasPlugin(ApplicationPlugin) && !configured) {
            run.classpath.add(configurations.jfxrt)

            startScripts {
                mainClassName = "com.javafx.main.Main"

                doLast {
                    logger.warn(":${project.name}:startScripts:!! WARNING !!" +
                            " Replaced mainClassName with com.javafx.main.Main")
                }
            }

            configured = true
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Pet*_*ser 5

实现这一目标的方法是plugins.withType(ApplicationPlugin) { ... }