我正在使用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
。
有没有办法克服这个问题?
答案 0 :(得分:0)
可以从例如用Java编写的插件访问扩展,但不能从工具API访问扩展。为了实现强大的向前和向后兼容性,工具API仅提供Gradle对象模型的简化视图,旨在满足IDE等集成商的需求。