如何在gradle工具中获取项目扩展?

时间:2012-10-12 06:16:38

标签: java gradle

我正在使用gradle工具并使用projectConnection我可以从java连接到gradle。通过使用ModelBuilder我也可以在我的java类中获取项目对象。

ModelBuilder gradleBuilder = connection.model(GradleProject.class); 

但是这个project对象只能访问任务。 (即)project.getTasks()可用。但不是project.getExtensions()。如何访问这些扩展?有没有其他方法可以从Java访问gradle Extensions

回复后编辑:

当我运行gradle任务时,它将读取给定文件中的闭包并更新在静态java类(deployGradleReaderExtension.java)中读取的值。现在我试图通过

读取扩展中的值
deployGradleReaderExtension ext = (deployGradleReaderExtension) buildResult.getGradle().getRootProject().getExtensions().getByName("serviceConf");

现在我得到了施法异常。因为gradle和java正在使用diff ClassLoaders

有没有办法克服这个问题?

1 个答案:

答案 0 :(得分:0)

可以从例如用Java编写的插件访问扩展,但不能从工具API访问扩展。为了实现强大的向前和向后兼容性,工具API仅提供Gradle对象模型的简化视图,旨在满足IDE等集成商的需求。