2

我有时会使用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
        }
    }
}
4

1 回答 1

4

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

于 2013-04-07T13:03:45.903 回答