Sky 是一个基于 Java 的开源项目,旨在提供一个灵活的插件化任务处理框架。该项目支持通过插件扩展功能,适用于需要模块化架构和动态加载任务的应用场景。
- sky-base: 提供基础类和工具类,包括注解、列信息、表格数据结构、任务信息等。
- sky-job: 主程序模块,包含插件加载器和任务执行逻辑。
- plugin-demo: 插件示例模块,演示如何定义插件任务和数据模型。
- 支持插件化架构,便于功能扩展。
- 提供通用的数据结构(如
TableData和Column)用于展示和处理表格数据。 - 使用注解(如
@ColumnInfo)简化数据模型与表格列的映射。 - 支持任务接口定义和实现分离,便于插件开发。
- Java 11 或更高版本
- Gradle 构建工具
- 克隆项目到本地:
git clone https://gitee.com/lm12306/sky.git
- 进入项目目录并构建:
cd sky ./gradlew build
使用以下命令运行主程序:
cd module/sky-job
../gradlew bootRun- 在
plugin-demo模块中定义任务类,实现TaskService接口。 - 在
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");
}
// 其他方法实现
}欢迎贡献代码和改进文档。请遵循以下步骤:
- Fork 项目仓库。
- 创建新分支并提交更改。
- 提交 Pull Request 并描述修改内容。
本项目采用 AGPL-3.0 许可证。详情请查看 LICENSE 文件。