小工具

安装和开发 Cool Request 小工具。

小工具是 Cool Request 中额外可选择安装的扩展能力。它可以是一个编码辅助面板、数据转换工具、格式化工具、生成器,或任何适合放在 IDE 内使用的研发辅助功能。

除了安装已有小工具,用户也可以自行开发小工具。小工具基于 Java/Kotlin 与 Swing 实现,最终打包成 .jar 文件后,即可安装到 Cool Request 中使用。

模板项目

可以从官方模板开始开发:

cool-request-tools / tool-template

模板目录中的 prompt.txt 是给 AI 使用的提示词。你可以把需求和这个提示词一起交给 AI,让 AI 基于模板生成小工具代码,再按本文流程打包安装。

开发前需要了解

  • Java 或 Kotlin 语言。
  • Swing UI 开发。
  • Gradle 构建工具。
  • JDK 推荐使用 11。如果 JDK 版本过高,打包后的小工具可能无法被 Cool Request 正常加载。

提示

小工具本质上是一个 Swing 面板扩展。Cool Request 会通过约定的配置文件找到入口类,再加载入口类返回的面板内容。

开发所需依赖

开发小工具需要引入 Cool Request 提供的工具依赖 coolrequest-tool.jar

下载依赖后,将 coolrequest-tool.jar 放到项目中,例如:

D:\project\java\coolrequest-tool\coolrequest-tool.jar

后续在 build.gradle.kts 中通过 implementation(files(...)) 引入该依赖。

开发步骤

1. 创建项目

创建一个 Java 或 Kotlin 项目,推荐使用 Gradle 作为构建工具。JDK 版本推荐选择 11

项目结构可以按下面方式组织:

your-tool
├─ build.gradle.kts
├─ src
│  └─ main
│     ├─ java
│     │  └─ com
│     │     └─ test
│     │        └─ ToolFactory.java
│     └─ resources
│        ├─ coolrequest.tool
│        ├─ logo.svg
│        └─ tool.name

2. 修改 Gradle 配置

打开 build.gradle.kts,增加如下配置:

plugins {
    kotlin("jvm") version "1.9.23"
}

group = "org.example"
version = "1.0-SNAPSHOT"

repositories {
    mavenCentral()
}

dependencies {
    testImplementation(kotlin("test"))

    // 引入下载的 Cool Request 小工具开发依赖
    implementation(files("D:\\project\\java\\coolrequest-tool\\coolrequest-tool.jar"))
}

// 将第三方依赖和当前项目一起打包进 jar
tasks.withType<Jar> {
    from({
        configurations.runtimeClasspath.get()
            .filter { it.name.endsWith("jar") }
            .map { zipTree(it) }
    })
}

tasks.test {
    useJUnitPlatform()
}

kotlin {
    jvmToolchain(11)
}

如果你的依赖文件不在示例路径下,需要把 implementation(files(...)) 中的路径改成实际位置。

3. 编写主入口

小工具入口类需要实现 ToolPanelFactory。Cool Request 加载小工具时,会调用 createToolPanel() 获取小工具面板。

示例代码:

package com.test;

import dev.coolrequest.tool.CoolToolPanel;
import dev.coolrequest.tool.ToolPanelFactory;

import javax.swing.*;
import java.awt.*;

public class ToolFactory implements ToolPanelFactory {
    @Override
    public CoolToolPanel createToolPanel() {
        return new CoolToolPanel() {
            @Override
            public JPanel createPanel() {
                return new MainPanel();
            }

            @Override
            public void showTool() {

            }

            @Override
            public void closeTool() {

            }
        };
    }

    public static class MainPanel extends JPanel {
        public MainPanel() {
            setLayout(new BorderLayout());
            add(new JLabel("Hello Cool Request", SwingConstants.CENTER), BorderLayout.CENTER);
        }
    }
}

其中:

  • createPanel():返回小工具真正展示的 Swing 面板。
  • showTool():小工具被打开时触发,可用于刷新数据或初始化状态。
  • closeTool():小工具被关闭时触发,可用于释放资源。

4. 增加配置文件

src/main/resources 目录下创建三个文件:

coolrequest.tool
logo.svg
tool.name

coolrequest.tool

保存实现 ToolPanelFactory 的类全限定名,用于告诉 Cool Request 从哪个类加载小工具内容。

例如:

com.test.ToolFactory

logo.svg

小工具图标,只能使用 SVG 格式。建议尺寸为 48x48

tool.name

小工具名称,会展示在 Cool Request 的小工具列表中。

例如:

Hello Tool

5. 打包项目

打开 Gradle 控制面板,执行 jar 任务。

打包完成后,生成的 .jar 文件通常位于:

build/libs

将该 .jar 文件安装到 Cool Request 中,即可使用你开发的小工具。

使用 AI 开发小工具

如果希望通过 AI 辅助开发,可以按下面方式准备信息:

  1. 打开模板项目中的 prompt.txt
  2. 告诉 AI 你要开发的小工具功能,例如“JSON 转 Java Bean”“Base64 编解码”“时间戳转换”等。
  3. 要求 AI 基于模板生成 Swing 面板和 ToolPanelFactory 入口类。
  4. 检查生成代码中的包名、入口类名和 coolrequest.tool 是否一致。
  5. 使用 Gradle 执行 jar 任务打包。

常见问题