我正在使用 Gradle 工具 API 来获得有关 Gradle 项目的不同见解,例如项目任务、Gradle 版本等。
此分析的一部分要求我知道项目(直接和传递)应用了哪些插件。我找不到从工具 API 获取 Project 插件的方法。有没有办法做到这一点?
我正在使用 Gradle 工具 API 来获得有关 Gradle 项目的不同见解,例如项目任务、Gradle 版本等。
此分析的一部分要求我知道项目(直接和传递)应用了哪些插件。我找不到从工具 API 获取 Project 插件的方法。有没有办法做到这一点?
工具 API 在查询构建的方式方面受到限制,并且没有列出构建插件的 API,但工具 API 允许您添加自己的插件和模型,您可以使用它们来查询构建。
这有点复杂,但您需要在构建中添加一个初始化脚本(例如 via init.gradle
)以提供您的自定义模型和插件来查询构建。
这是一个很好的仓库,演示了如何做到这一点:https ://github.com/melix/gradle-tapi-demo-artifacts
以下是该仓库中的一些代码,演示了如何使用自定义插件和模型列出构建工件:
ModelBuilder<OutgoingArtifactsModel> customModelBuilder = connection.model(OutgoingArtifactsModel.class);
customModelBuilder.withArguments("--init-script", copyInitScript().getAbsolutePath());
OutgoingArtifactsModel model = customModelBuilder.get();
for (File artifact : model.getArtifacts()) {
System.out.println("artifact = " + artifact);
}
如果你想列出插件,你可以使用project.getPlugins()
API。