正如我之前在“ 识别Gradle约定 ”和“ 从Ant Build演变Gradle构建:导入Ant构建文件 ”之类的文章中所显示的那样,可以通过Groovy访问Gradle的API来收集有关Gradle构建的重要信息。 在本文中,我演示了如何通过Gradle接口访问基本的Gradle构建细节。
可以通过简单的“ gradle”(在Groovy中隐式对应于getGradle())在Gradle构建文件中访问org.gradle.api.invocation.Gradle接口。 下一个Gradle构建脚本列表显示了可通过Gradle
界面获得的元数据信息的子集。
build-gradle-interface.gradle
// build-gradle-interface.gradle
apply plugin: 'java'println "Class: ${this.getClass().canonicalName}"
println "Gradle: ${gradle.getClass().canonicalName}"
println "Ant: ${ant.getClass().canonicalName}"
println "Root Project: ${rootProject.getClass().canonicalName}"println "\n=== Gradle ==="
println "\tgradleVersion = ${gradle.gradleVersion}"
println "\tgradleHomeDir = ${gradle.gradleHomeDir}"
println "\tgradleUserHomeDir = ${gradle.gradleUserHomeDir}"println "\n=== Gradle.startParameter ==="
def startParameter = gradle.startParameter
println "\tcurrentDir = ${startParameter.currentDir}"
println "\tprojectDir = ${startParameter.projectDir}"
println "\tgradleUserHomeDir = ${startParameter.gradleUserHomeDir}"
println "\tbuildFile = ${startParameter.buildFile}"
println "\tprojectProperties = ${startParameter.projectProperties}"
println "\tsystemPropertiesArgs = ${startParameter.systemPropertiesArgs}"
println "\ttaskNames = ${startParameter.taskNames}"
当我运行上面的Gradle构建并指定应运行“ jar ”任务(由Java插件 提供的任务 )时,输出如下所示:
上面的构建清单和相关的屏幕快照指示Gradle
界面提供了元数据,例如Gradle的版本,Gradle安装的主目录和Gradle用户的目录。 Gradle
接口还提供对StartParameter实例的访问,该实例提供了进一步的构建启动元数据详细信息,例如项目目录,当前目录,构建文件的名称,项目属性,系统属性以及为执行指定的任务名称。
从Gradle
界面可以收集到有关Gradle构建的大量信息,而这篇文章仅显示了该信息的一部分。
翻译自: https://www.javacodegeeks.com/2014/01/the-gradle-interface-gradle-build-metadata.html