使用Gradle工具api以编程方式获取Gradle插件

使用Gradle工具api以编程方式获取Gradle插件,gradle,gradle-plugin,gradle-tooling-api,Gradle,Gradle Plugin,Gradle Tooling Api,我正在使用Gradle工具API来获得关于Gradle项目的不同见解,例如项目任务、Gradle版本等等 这个分析的一部分要求我知道项目应用了哪些插件(直接的和传递的)。 我找不到从工具API获取项目插件的方法。 有办法吗?工具API仅限于查询构建的方式,没有列出构建插件的API,但工具API允许您添加自己的插件和模型,您可以使用这些插件和模型来查询构建 这有点复杂,但您需要向构建中添加一个(例如通过init.gradle)来提供自定义模型和插件来查询构建 这是一个很好的回购协议,展示了如何做到

我正在使用Gradle工具API来获得关于Gradle项目的不同见解,例如项目任务、Gradle版本等等

这个分析的一部分要求我知道项目应用了哪些插件(直接的和传递的)。 我找不到从工具API获取项目插件的方法。
有办法吗?

工具API仅限于查询构建的方式,没有列出构建插件的API,但工具API允许您添加自己的插件和模型,您可以使用这些插件和模型来查询构建

这有点复杂,但您需要向构建中添加一个(例如通过
init.gradle
)来提供自定义模型和插件来查询构建

这是一个很好的回购协议,展示了如何做到这一点:

从演示如何使用自定义插件和模型列出构建工件的repo:

ModelBuilder customModelBuilder=connection.model(OutgoingArtifactsModel.class);
customModelBuilder.withArguments(“--init script”,copyInitScript().getAbsolutePath());
OutgoingArtifactsModel model=customModelBuilder.get();
对于(文件工件:model.getArtifacts()){
System.out.println(“artifact=“+artifact”);
}
如果要列出插件,可以使用
project.getPlugins()
API

…您能否根据工件版本或发布类型建议上载存档任务。它可以选择SnapshotURL或ReleaseURL。如何在运行时获取部署URL。我想在init.gradle中读取该url?请建议。