如何使用gradle工具api将插件应用于构建脚本?

如何使用gradle工具api将插件应用于构建脚本?,gradle,gradle-tooling-api,Gradle,Gradle Tooling Api,我正在编写一个Eclipse插件,我想使用gradle工具api来检查gradle项目的构建脚本,看看它是否应用了某些插件 假设我有一个构建脚本,看起来像这样: buildscript { repositories { mavenCentral() } dependencies { classpath 'org.dm.gradle:gradle-bundle-plugin:0.6.2' } } apply plugin: 'ja

我正在编写一个Eclipse插件,我想使用gradle工具api来检查gradle项目的构建脚本,看看它是否应用了某些插件

假设我有一个构建脚本,看起来像这样:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'org.dm.gradle:gradle-bundle-plugin:0.6.2'
    }
}

apply plugin: 'java'
apply plugin: 'org.dm.bundle'

repositories {
    mavenCentral()
}

sourceCompatibility = 1.7
version = '1.0'
有没有一种方法可以让我使用gradle工具api来找出这个特殊的gradle项目应用了哪些插件


我知道您可以获得项目依赖项列表,但是buildscript{}依赖项呢?

这个问题实际上包含两个独立的问题。我当时没有意识到。第一个问题应该是:

1。如何使用工具api找出某个特定项目是否应用了特定插件?

这个问题的答案就在这里:

您可以在此处找到该文章中使用的源代码:

然而,我在本地构建和执行该示例时遇到了一些困难,因此我向发布了一个修复程序

第二个问题是:

一旦您从问题#1中获得了必要的工具api模型和插件,您如何从Eclipse插件上下文执行此自定义工具脚本?

为此,您需要使用优秀的插件作为您自己的eclipse插件的依赖项。配置完成后,您可以简单地导入这些APIGradleConnector、ProjectConnection、ModelBuilder,这些API是由前面提到的导出的


在类路径上获取您自己的本地自定义模型就像按照正常机制(MANIFEST.MF条目,不要忘记build.properties以包含jar)将jar嵌入eclipse插件一样简单。此外,您还需要为自定义gradle脚本提供一个本地repo,以获取模型/插件类,如

中所示。第一个链接已失效,这正是为什么应该提供答案而不是链接的原因。