Java 获取build.gradle文件作为.class文件

Java 获取build.gradle文件作为.class文件,java,gradle,groovy,jvm,Java,Gradle,Groovy,Jvm,我有一个gradle文件打印“Hello World” task hello确实,Gradle脚本(build.Gradle、init脚本或settings脚本)将在运行期间编译为Java字节码。Gradle将结果.class文件生成到${user.home}/.Gradle/caches/${Gradle.version}/scripts下的内部“script”缓存目录结构中 但这个编译过程是Gradle实现的内部过程,它不是通过DSL或API公开的(据我所知):您可以在Gradle源代码的核

我有一个gradle文件打印“Hello World”


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

但这个编译过程是Gradle实现的内部过程,它不是通过DSL或API公开的(据我所知):您可以在Gradle源代码的核心子模块中找到一些实现细节:参见内部包


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

这是不可能的,但为什么您需要它?如果需要编译某些东西,为什么不使用普通的groovy呢?build.gradle不是groovy脚本。这是一个由Gradle框架解释的DSL。您的
println“hello”
只是一个运行到framework@daggett我想在某个时候gradle会将这个groovy scipt转换成.class,因为JVM最终是正确完成这项工作的人?所以在结尾应该有一个.class文件。我说的对吗?@jorgageguileragonzalez是的,但是在某个时候它应该被转换成java字节码,这样JVM就可以运行它了。Gradle是用java编写的,groovy使用JVM,我认为最后的工作是由JVM完成的。所以应该有一个类文件Daggett和JorgageGuilleraGonzalez是正确的我只是需要它。我需要通过反编译.class来查看Java代码,并查看委托的工作方式等。您将找到我编写的.class,问题是它们是在具有随机名称的目录中生成的,如“bk37q0xkx1tpx4ubnd22xfo5s”,很难找到与特定构建脚本相关的.class。祝你好运;)
task hello << {
    println "Hello World"
}