gradle如何解析gradle插件门户中未列出的插件?

aamkag61  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(380)

spring-security 在build.gradle文件中,提供了以下插件:

apply plugin: 'io.spring.nohttp'
apply plugin: 'locks'
apply plugin: 'io.spring.convention.root'
apply plugin: 'org.jetbrains.kotlin.jvm'
apply plugin: 'org.springframework.security.update-dependencies'
apply plugin: 'org.springframework.security.sagan'
apply plugin: 'org.springframework.github.milestone'
apply plugin: 'org.springframework.github.changelog'

关于列表中的第一个插件( io.spring.nohttp )-在gradle-插件页面中,如果在 Search Gradle plugins 文本字段用于 io.spring.nohttp 术语出现在io.spring.nohttp结果中,并且可以由所有者打开:spring io,其中显示同一所有者的多个插件。如果您在一个新的选项卡页面中为其中一些帐户打开,您将看到它在github中与两个不同的帐户一起工作-例如:
io.spring.nohttp-> https://github.com/spring-io/nohttp (修订) spring-io (用户)
io.spring.dependency-management-> https://github.com/spring-gradle-plugins/dependency-management-plugin (修订) spring-gradle-plugins (用户)
所以,我可以分析和理解每个插件是如何工作的,或者它是做什么的。
对于其他插件- org.jetbrains.kotlin.jvm -这与上面分享的经历相同
这篇文章的原因:对于许多其他插件,如果我尝试搜索其他插件,例如关于 Sagan -如果在文本字段中使用 org.springframework.security.sagan 术语,它不会返回结果(即使只有 sagan 但我知道github中存在SpringIO/sagan项目,它是插件吗?
那么,如何解决gradle插件页面中“理论上”不存在的插件呢?

z0qdvdin

z0qdvdin1#

由定义的一些插件 spring-security 没有发布到gradle插件门户,也没有发布到任何其他存储库中。但是,它可以工作,因为项目可以使用 buildSrc 目录也。
例如,id为的插件 org.springframework.security.sagan 在各自的 buildSrc/build.gradle :

gradlePlugin {
    plugins {
        sagan {
            id = "org.springframework.security.sagan"
            implementationClass = "org.springframework.gradle.sagan.SaganPlugin"
        }
    }
}
``` `spring-io/sagan` 它本身不是一个gradle插件。
在gradle官方文档中阅读更多关于力学的信息:
使用buildsrc抽象命令式逻辑
打包插件

相关问题