Skip to content

Repository files navigation

Sky 项目 README

项目简介

Sky 是一个基于 Java 的开源项目,旨在提供一个灵活的插件化任务处理框架。该项目支持通过插件扩展功能,适用于需要模块化架构和动态加载任务的应用场景。

核心模块

  • sky-base: 提供基础类和工具类,包括注解、列信息、表格数据结构、任务信息等。
  • sky-job: 主程序模块,包含插件加载器和任务执行逻辑。
  • plugin-demo: 插件示例模块,演示如何定义插件任务和数据模型。

功能特性

  • 支持插件化架构,便于功能扩展。
  • 提供通用的数据结构(如 TableDataColumn)用于展示和处理表格数据。
  • 使用注解(如 @ColumnInfo)简化数据模型与表格列的映射。
  • 支持任务接口定义和实现分离,便于插件开发。

安装与配置

环境要求

  • Java 11 或更高版本
  • Gradle 构建工具

构建项目

  1. 克隆项目到本地:
    git clone https://gitee.com/lm12306/sky.git
  2. 进入项目目录并构建:
    cd sky
    ./gradlew build

运行主程序

使用以下命令运行主程序:

cd module/sky-job
../gradlew bootRun

使用说明

开发插件

  1. plugin-demo 模块中定义任务类,实现 TaskService 接口。
  2. plugin-info.json 文件中配置插件信息,包括插件名称、版本、任务类等。

加载插件

主程序启动时会自动加载插件目录中的 JAR 文件,并初始化插件任务。

示例代码

定义数据模型

public class Cat {
    @ColumnInfo("昵称")
    private String name;

    @ColumnInfo("年龄")
    private int age;

    @ColumnInfo("颜色")
    private String color;

    // Getter 和 Setter 方法
}

实现任务接口

public class TaskServiceImpl implements TaskService<Cat> {
    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 文件。

About

No description, website, or topics provided.

Resources

Stars

34 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages