我正在使用 gradle 工具并使用projectConnection
我能够从 java 连接到 gradle。通过使用ModelBuilder
我也可以在我的 java 类中获取项目对象。
ModelBuilder gradleBuilder = connection.model(GradleProject.class);
但是这个project
对象只能访问任务。(即)project.getTasks()
可用。但不是project.getExtensions()
。如何访问这些扩展?有没有其他方法可以Extensions
从 Java 访问 gradle?
回复后编辑:
当我运行一个 gradle 任务时,它将读取给定文件中的闭包并更新在静态 java 类 ( deployGradleReaderExtension.java
) 中读取的值。现在我正在尝试从扩展中读取值
deployGradleReaderExtension ext = (deployGradleReaderExtension) buildResult.getGradle().getRootProject().getExtensions().getByName("serviceConf");
现在我得到了铸造异常。因为 gradle 和 java 正在使用 diff ClassLoaders
。
有什么办法可以克服这个吗?