我正在编写一个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项目正在应用哪些插件?
我知道你可以获得项目依赖项列表,但是如何构建构建器{}依赖项?
答案 0 :(得分:0)
这个问题实际上嵌入了两个独立的问题。我当时没有意识到。第一个问题应该是:
<强> 1。你如何使用tooling-api找出特定项目已应用特定插件?
这个问题的答案正是在这里处理:Gradle Tooling API Feature
您可以在此处找到该文章中使用的源代码:Tooling API Example Repo
但是我在本地构建和执行该示例时遇到了一些麻烦,所以我发布了my own fork if you want to use it的修复程序。
然后第二个问题是:
从问题#1获得必要的tooling-api模型和插件后,如何从Eclipse插件上下文执行此自定义工具脚本?
为此,您需要使用优秀的gradle integration plugin for Eclipse作为您自己的eclipse插件的依赖项。配置完成后,您只需导入已经提到的gradle plugin for eclipse导出的这些API GradleConnector,ProjectConnection,ModelBuilder 。
在类路径上获取您自己的本地自定义模型就像在正常机制中将jar嵌入到eclipse插件中一样简单(MANIFEST.MF条目,不要忘记build.properties包含jar)。此外,您需要为自定义gradle脚本提供一个本地存储库来拾取模型/插件类,如example github repo
中所示。