• IDEA插件开发(3)---捆绑插件 API 源


    如果插件公开了自己的 API 供其他插件使用,则值得考虑将插件的 API 源捆绑在 ZIP 分发中。

    如果第三方插件使用Gradle IntelliJ 插件并向插件添加了一个依赖项,该插件捆绑了 ZIP 分发中的源代码,则当开发人员导航到 API 类时,源代码将自动附加到插件库并在 IDE 中可见。能够看到 API 源极大地改善了开发体验,强烈建议捆绑它们。

    从 Gradle IntelliJ 插件 1.7.0 开始,可以在 IDE 中附加捆绑的插件源。

    API 源位置
    API 源 JAR 必须位于example-plugin.zip 中!插件 ZIP 分发中的/plugin /lib /src目录,例如:

    example-plugin.zip
    └── example-plugin
    └── lib
    ├── example-plugin.jar
    └── src
    └── example-plugin-api-src.jar
    插件 ZIP 可以包含多个源 JAR,并且源 JAR 名称没有严格的规则。

    定义插件 API
    通常,以下类被视为插件 API:

    扩展点及相关类

    监听器和相关类

    提供对插件数据/行为的访问的服务和实用程序

    请记住,API 应该是稳定的并且很少更改,因为每个不兼容的更改都会破坏客户端插件。还建议将插件代码组织在多个职责明确的模块中,例如:

    example-plugin-api- 包含 API 的模块

    example-plugin-impl- 一个包含插件功能代码的模块,这些代码不打算被客户端插件扩展或使用

    定义 API 的一般规则是包含可能被客户端插件代码使用的类。

    当然,更复杂的插件可能需要更细粒度的结构。请参阅Gradle IntelliJ 插件 - 使用示例。

    在 Gradle 构建脚本中捆绑 API 源
    在最简单的情况下,如果一个项目由单个模块组成,并且插件 API 明确隔离在一个包中,例如com.example.plugin.openapi,可以通过tasks在 Gradle 构建脚本部分添加以下代码段来实现包含源 JAR:

    科特林
    时髦的
    tasks {
    val createOpenApiSourceJar by registering(Jar::class) {
    // Java sources
    from(sourceSets.main.get().java) {
    include(“/com/example/plugin/openapi//.java")
    }
    // Kotlin sources
    from(kotlin.sourceSets.main.get().kotlin) {
    include("/com/example/plugin/openapi//
    .kt”)
    }
    destinationDirectory.set(layout.buildDirectory.dir(“libs”))
    archiveClassifier.set(“src”)
    }

    buildPlugin {
    dependsOn(createOpenApiSourceJar)
    from(createOpenApiSourceJar) { into(“lib/src”) }
    }
    }
    上述配置将从com.example.plugin.openapi包中创建一个包含 Java 和 Kotlin 源文件的源 JAR,并将其添加到所需的example-plugin.zip 中的最终插件 ZIP 分发中!/example-plugin /lib /src目录。

    如果你的插件是 Gradle 项目,并且没有明确的开放 API 包分离,建议将插件项目重组为 Gradle 多项目变体,并创建一个专用的开放 API 子项目,其中包含要包含在最终的所有 API 源由主插件 Gradle 项目创建的发行版。

  • 相关阅读:
    Python:实现modular exponential模指数算法(附完整源码)
    golang 协程的实现原理
    XSS攻击(3), 实战XSS注入思路
    【飞桨PaddleSpeech语音技术课程】— 语音合成
    年轻人如何预防胆囊结石?
    ROS-API函数介绍
    table标签、表格的跨行跨列、ifarme标签
    体感互动ar交互大屏设计方案
    【学习笔记】「JOI Open 2022」长颈鹿
    uniapp APP读取bin文件(仅测试安卓可用)
  • 原文地址:https://blog.csdn.net/jiangguilong2000/article/details/126061772