将build.gradle文件获取为.class文件

时间:2018-09-20 09:28:32

标签: java gradle groovy jvm

我有一个gradle文件,其中打印了“ Hello World”

task hello << {
    println "Hello World"
}

该脚本是用groovy编写的。据我所知,由于它使用JVM,因此可以将Test.groovy的输出输入到Test.class中。所以我的问题是如何获取build.gradle文件的.class文件?我需要向gradle恶魔提供任何特定的命令吗?

1 个答案:

答案 0 :(得分:1)

确实,在Gradle build initialization phase期间,Gradle脚本(build.gradle,init脚本或设置脚本)将被编译为Java字节码。 Gradle将结果文件 .class 生成到$ {user.home} /。gradle / caches / $ {gradle.version} / scripts下的内部“脚本”缓存目录结构中。

但是此编译过程是Gradle实现的内部过程,据我所知,它不是通过DSL或API公开的:您可以在Gradle的 core 子模块中找到一些实现细节源代码:请参阅内部软件包https://github.com/gradle/gradle/tree/master/subprojects/core/src/main/java/org/gradle/groovy/scripts

我不认为您可以通过编程方式访问这些 .class 文件,即使通过入侵Gradle核心实现也是如此,但是正如其他人在评论中所说:为什么您需要这么做?