当前位置: 首页 > 知识库问答 >
问题:

如何使用gradle tooling API将插件应用于构建脚本?

柯骏
2023-03-14

我正在编写一个Eclipse插件,我想使用gradle tooling 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'

共有1个答案

尉迟子民
2023-03-14

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

1.如何使用tooling-api找出某个特定项目应用了某个特定插件?

这里精确地处理了这个问题的答案:Gradle Tooling API特性

您可以在下面找到那篇文章中使用的源代码:工具API示例Repo

然而,我在本地构建和执行这个示例时遇到了一些困难,所以如果您想使用它,我在自己的fork上发布了一个修复程序。

那么第二个问题是这样的:

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

 类似资料:
  • 项目可以通过添加向构建脚本中加入插件的类路径然后在应用插件,添加作为外部JAR文件的二进制插件.外部jar可以使用buildscrip{}块添加到构建脚本类路径就像Section 62.6, “External dependencies for the build script”中描述的一样. Example 21.4. Applying a plugin with the buildscript

  • 插件{}块目前只能在一个项目的构建脚本中使用.他不能在脚本插件,settings.gradle和出书画脚本中使用. Gradle的未来版本将删除此限制.

  • Example 21.1. Applying a script plugin build.gradle apply from: 'other.gradle' 脚本插件可以从本地文件系统或在远程位置的脚本中应用.文件系统的位置是相对于项目目录,而远程脚本位置的是由一个HTTP URL指定的.多个脚本插件(两种形式之一)可以被应用到给定的构建。

  • 问题内容: 问题 我刚刚安装了Sonar Jenkins插件。我进入了配置的作业(自由样式作业),该作业通过ANT构建生成WAR文件工件,并且执行以下操作: 选中声纳复选框。(这里没有问题) 配置声纳的安装目录(这里没有问题) 选中以下复选框: “检查该项目是否不是用maven 2构建的” (我在这里感到困惑) 我已经选中了该框,因为我没有使用Maven进行构建,而是使用ANT,但它仍要求我提供类

  • 我已经用Xtext 2.12编写了一个DSL,我的Xted2.12代码生成器从中产生了Java8的代码。我正在使用Eclipse Oxygen.3a。我从创建一个Xtext项目作为Eclipse插件开始,一切都很好,但是我现在希望一切都由Gradle构建。为此,我已经将Gradle性质添加到我的Xtext项目中,并启动了“gradle init”来生成build.gradle和settings.g

  • 在使用GradleV5.5.1的多项目构建中,我尝试将插件仅应用于某些子项目(如使用插件中所述)。您可以在这里看到,我试图将它应用于以结尾的子项目: 但是,它将其应用于我的项目(输出日志): 我做错了什么??