IDEA Gradle 的整套通讯机制是建立在Gradle Tooling APi 的基础上的,Gradle 提供了一个名为Tooling Api 的编程API,可用于将Gradle 嵌入到自己的软件中,该API 允许开发者执行和监视构建,并向Gradle 查询构建的详细信息。
开发者开发的Gradle 插件,可以通过 ToolingModelBuilderRegistry 来将自定义的ToolingModel注册到Gradle中,再对外部工具提供这些模型。
Tooling API提供的部分功能:
1.查询构建的详细信息,包括项目层次结构和依赖项,外部依赖项(包括源和javadoc jar),每个项目的源目录和任务。
2.执行构建,并收听stdout和stderr日志记录和进度消息(例如,在命令行上运行时,“状态栏”中显示的消息)
3.执行特定的测试类和测试方法。
4.在构建执行时接受相关的事件,例如项目配置,任务执行或测试执行。
5.取消正在运行的构建。
6.将多个单独的gradle构建项目合并称为一个复合构建。
7.Tooling Api 可以下载并安装适当的Gradle版本,类似于包装程序。
8.该实现是轻量级的,仅具有少量的依赖性。它也是一个行为良好的库,不对您的类加载器结构或日志记录配置进行任何假设,这使该API 易于嵌入到您的应用程序中。
注1.可以通过搜索 Custom Gradle ToolingModel 寻找相关示例的代码
如:https://github.com/bmuschko/tooling-api-custom-model
注2:官方文档:
https://docs.gradle.org/current/userguide/third_party_integration.html
注3:测试ToolingModel时,可以通过GradleConnector 获取模型,详见示例代码或注1的示例代码