我正在使用 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。
有什么办法可以克服这个吗?