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: 'java'
apply plugin: 'org.dm.bundle'

repositories {
    mavenCentral()
}

sourceCompatibility = 1.7
version = '1.0'

有没有一种方法可以让我使用 gradle tooling api 来找出这个特定的 gradle 项目应用了哪些插件?

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

最佳答案

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

<强>1。你如何使用 tooling-api 找出特定项目应用了特定插件?

这个问题的答案在这里得到精确处理:Gradle Tooling API Feature

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

但是,我在本地构建和执行该示例时遇到了一些麻烦,所以我发布了一个修复程序 my own fork if you want to use it .

那么第二个问题是:

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

为此,您需要使用出色的 gradle integration plugin for Eclipse作为您自己的 eclipse 插件的依赖项。配置完成后,您可以简单地导入由 gradle plugin for eclipse 导出的这些 API GradleConnector、ProjectConnection、ModelBuilder已经提到了。

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

关于gradle - 如何使用 gradle tooling api 将插件应用于构建脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29141413/

相关文章:

android - "Program type already present"是什么意思?

java - Gradle : Could not find org. codehaus.groovy :groovy:1. 0.0

gradle - 使用Gradle Tooling API设置任务属性(或命令行参数)

gradle - 在Gradle Tooling API的Groovy中将varargs作为第二个参数传递

java - Gradle多项目配置: Could not find or load main class

gradle - 使用 gradle 'java-library' 时无法引用库中的类

java - Gradle中的WildFly Swarm + War + Local Jar依赖-NullPointerException

java - Gradle Tooling API - 查找 GradleProject 的所有任务

gradle - 使用 Gradle tooling api 以编程方式获取 Gradle 插件