gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 07:25:05 28 4
gpt4 key购买 nike

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 - Plugins 中页面,如果在 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 中存在 spring-io/sagan项目,是插件吗?
    那么如何解决 Gradle 插件页面中“理论上”不存在的插件呢?

    最佳答案

    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 文档中阅读更多关于机制的信息:
  • Use buildSrc to abstract imperative logic
  • Packaging a plugin
  • 关于gradle - Gradle 如何解析 Gradle 插件门户中未列出的插件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68258949/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com