# sky **Repository Path**: lm12306/sky ## Basic Information - **Project Name**: sky - **Description**: Sky 是一个基于 Java 的开源项目,旨在提供一个灵活的插件化任务处理框架。该项目支持通过插件扩展功能,适用于需要模块化架构和动态加载任务的应用场景。 - **Primary Language**: Java - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2025-09-11 - **Last Updated**: 2026-02-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Sky 项目 README ## 项目简介 Sky 是一个基于 Java 的开源项目,旨在提供一个灵活的插件化任务处理框架。该项目支持通过插件扩展功能,适用于需要模块化架构和动态加载任务的应用场景。 ### 核心模块 - **sky-base**: 提供基础类和工具类,包括注解、列信息、表格数据结构、任务信息等。 - **sky-job**: 主程序模块,包含插件加载器和任务执行逻辑。 - **plugin-demo**: 插件示例模块,演示如何定义插件任务和数据模型。 ## 功能特性 - 支持插件化架构,便于功能扩展。 - 提供通用的数据结构(如 `TableData` 和 `Column`)用于展示和处理表格数据。 - 使用注解(如 `@ColumnInfo`)简化数据模型与表格列的映射。 - 支持任务接口定义和实现分离,便于插件开发。 ## 安装与配置 ### 环境要求 - Java 11 或更高版本 - Gradle 构建工具 ### 构建项目 1. 克隆项目到本地: ```bash git clone https://gitee.com/lm12306/sky.git ``` 2. 进入项目目录并构建: ```bash cd sky ./gradlew build ``` ### 运行主程序 使用以下命令运行主程序: ```bash cd module/sky-job ../gradlew bootRun ``` ## 使用说明 ### 开发插件 1. 在 `plugin-demo` 模块中定义任务类,实现 `TaskService` 接口。 2. 在 `plugin-info.json` 文件中配置插件信息,包括插件名称、版本、任务类等。 ### 加载插件 主程序启动时会自动加载插件目录中的 JAR 文件,并初始化插件任务。 ## 示例代码 ### 定义数据模型 ```java public class Cat { @ColumnInfo("昵称") private String name; @ColumnInfo("年龄") private int age; @ColumnInfo("颜色") private String color; // Getter 和 Setter 方法 } ``` ### 实现任务接口 ```java public class TaskServiceImpl implements TaskService { private PluginDataInteraction pluginDataInteraction; private JsonConverter jsonConverter; @Override public void run(LogMessage logMessage) { logMessage.print("demo"); logMessage.carryTimePrintln("demo"); logMessage.pushMessage("demo"); } // 其他方法实现 } ``` ## 贡献指南 欢迎贡献代码和改进文档。请遵循以下步骤: 1. Fork 项目仓库。 2. 创建新分支并提交更改。 3. 提交 Pull Request 并描述修改内容。 ## 许可证 本项目采用 AGPL-3.0 许可证。详情请查看 LICENSE 文件。