首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java plugin validatePlugins任务

Java plugin validatePlugins任务
EN

Stack Overflow用户
提问于 2021-08-20 06:09:59
回答 1查看 169关注 0票数 0

我正在测试核心插件java-gradle-pluginvalidatePlugins任务,它似乎在构建过程中什么也不做,如果我直接运行它的话。

我有一个构建脚本,它用一个不存在的插件类定义插件。注意,foo.bar.NonexistingPluginClass这个类不在我的源代码中。

代码语言:javascript
复制
plugins {
    id 'java-gradle-plugin'
}

gradlePlugin {
    plugins {
        create("simplePlugin") {
            id = "foo.bar.validation-plugin-test"
            implementationClass = "foo.bar.NonexistingPluginClass"
        }
    }
}

现在,官方的分级页表示,正在进行以下验证:

实现类属性引用jar中的有效类文件。

不过,当我运行build任务时,它也会触发validatePlugins 1,并且没有报告警告,什么都没有。另外,如果我检查build/reports/plugin-development/validation-report.txt,该文件只是空的。

相反,我看到的是:即使在执行validatePlugins之前就执行的:jar任务在日志中抛出一条消息,如下所示:

代码语言:javascript
复制
> Task :compileJava
> Task :pluginDescriptors
> Task :processResources
> Task :classes

> Task :jar
:jar: A valid plugin descriptor was found for foo.bar.validation-plugin-test.properties but the implementation class foo.bar.NonexistingPluginClass was not found in the jar.

> Task :assemble
>...
> Task :validatePlugins
> Task :check
> Task :build

BUILD SUCCESSFUL in 1s

我是否遗漏了一些额外的配置,以便得到警告,即implementationClass实际上并不是指来自validatePlugins任务的现有类?还是我曲解了文件?这是个虫子吗?

PS:使用Gradle 7.2,Java 15运行

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-20 07:13:16

任务ValidatePlugins不检查插件元数据,而是对插件类进行静态代码分析:

通过检查工作项(如任务和工件转换)上的属性注释来验证插件。这个任务应该在Gradle插件项目中用于对插件类进行静态分析。

您在构建过程中看到的输出与java级插件文档中描述的内容相匹配。上面写着

..。在jar任务执行期间执行插件元数据的验证。

以及进一步

任何失败的验证都将导致一条警告消息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68857663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档