Java 如何从build.gradle中的settings.gradle继承方法

Java 如何从build.gradle中的settings.gradle继承方法,java,gradle,build.gradle,Java,Gradle,Build.gradle,我是Gradle的新手,我试图确保我没有重复我的代码。在父模块中,我分别在settings.gradle和build.gradle文件中使用相同的方法。是否有一种方法可以设置其中一个文件以从另一个文件继承方法,而不是在两个位置都定义方法?您可以将您的方法放置在单独的第三个文件中(例如,子文件夹buildfiles/中的buildMisc.gradle),并从build.gradle应用此方法,如下所示: apply from: 'buildfiles/buildMisc.gradle' 在那里

我是Gradle的新手,我试图确保我没有重复我的代码。在父模块中,我分别在settings.gradle和build.gradle文件中使用相同的方法。是否有一种方法可以设置其中一个文件以从另一个文件继承方法,而不是在两个位置都定义方法?

您可以将您的方法放置在单独的第三个文件中(例如,子文件夹buildfiles/中的buildMisc.gradle),并从build.gradle应用此方法,如下所示:

apply from: 'buildfiles/buildMisc.gradle'
在那里,您还可以放置通用的“全局”groovy方法,以便在其他任务中使用,例如

configure(project.rootProject) {
    ext {
        additionalBuildInfo = { subproject ->
        return [
                operatingSystem: "${System.properties['os.name']} (${System.properties['os.version']})",
                continuousIntegration: System.getenv('CI') ? true: false,
                machine: InetAddress.localHost.hostName,
                // Override buildInfo property time
                time: new Date(System.currentTimeMillis()).format('EEE MMM dd HH:mm:ss z yyyy')
        ]
    }
}

我已经想到了这一点,但如果可以的话,我希望避免为一个方法创建第三个文件。看起来像这样的普通文件稍后会派上用场,所以我会这样做。非常感谢你!