147 lines
3.0 KiB
Markdown
147 lines
3.0 KiB
Markdown
# Flowable DevOps 插件目录
|
||
|
||
这是外部插件的存放目录。
|
||
|
||
## 📁 目录结构
|
||
|
||
```
|
||
plugins/
|
||
├── README.md # 本文件
|
||
├── http-request-plugin/ # HTTP请求插件(示例)
|
||
│ ├── http-request-1.0.0.jar
|
||
│ └── plugin.json
|
||
└── custom-plugin/ # 你的自定义插件
|
||
├── custom-plugin-1.0.0.jar
|
||
└── plugin.json
|
||
```
|
||
|
||
## 🔌 如何添加插件
|
||
|
||
### 方法1:复制JAR文件(第二期支持)
|
||
|
||
1. 将插件JAR文件复制到此目录
|
||
2. 确保插件包含 `plugin.json` 清单文件
|
||
3. 重启应用或触发热加载
|
||
|
||
### 方法2:通过API上传(第二期支持)
|
||
|
||
```bash
|
||
curl -X POST http://localhost:8080/api/plugins/upload \
|
||
-F "file=@my-plugin-1.0.0.jar"
|
||
```
|
||
|
||
### 方法3:内置插件(第一期推荐)
|
||
|
||
将插件代码直接添加到项目中:
|
||
|
||
1. 在 `src/main/java/.../workflow/node/` 创建节点类
|
||
2. 添加 `@NodePlugin` 注解
|
||
3. 实现 `WorkflowNode` 接口
|
||
4. 重启应用自动加载
|
||
|
||
## 📦 内置插件
|
||
|
||
当前系统内置以下插件:
|
||
|
||
### API 接口
|
||
|
||
- **HTTP Request** (`http_request`) - 发送HTTP请求
|
||
- 版本: 1.0.0
|
||
- 作者: Flowable Team
|
||
|
||
### 数据转换
|
||
|
||
- **Text Processor** (`text_processor`) - 文本处理工具
|
||
- 版本: 1.0.0
|
||
- 作者: Flowable Team
|
||
- 功能: 大小写转换、字符串反转、去除空格
|
||
|
||
## 🛠️ 插件开发
|
||
|
||
详细开发指南请参考:`docs/07-插件开发指南.md`
|
||
|
||
快速示例:
|
||
|
||
```java
|
||
@NodePlugin(
|
||
id = "my_plugin",
|
||
name = "myPlugin",
|
||
displayName = "My Plugin",
|
||
category = NodeCategory.OTHER,
|
||
version = "1.0.0"
|
||
)
|
||
@Component
|
||
public class MyPluginNode implements WorkflowNode {
|
||
// 实现接口...
|
||
}
|
||
```
|
||
|
||
## 🔧 插件管理API
|
||
|
||
### 查询所有插件
|
||
|
||
```bash
|
||
GET /api/plugins
|
||
```
|
||
|
||
### 启用/禁用插件
|
||
|
||
```bash
|
||
POST /api/plugins/{pluginId}/enable
|
||
POST /api/plugins/{pluginId}/disable
|
||
```
|
||
|
||
### 查看插件详情
|
||
|
||
```bash
|
||
GET /api/plugins/{pluginId}
|
||
```
|
||
|
||
### 统计信息
|
||
|
||
```bash
|
||
GET /api/plugins/statistics
|
||
```
|
||
|
||
## ⚠️ 注意事项
|
||
|
||
1. **第一期**:仅支持内置插件,外部JAR加载将在第二期实现
|
||
2. **热加载**:当前不支持,需要重启应用
|
||
3. **依赖管理**:插件间依赖解析在第三期实现
|
||
4. **安全性**:请勿加载未知来源的插件
|
||
|
||
## 📋 开发计划
|
||
|
||
### ✅ 第一期(已完成)
|
||
- [x] 插件注解系统
|
||
- [x] 自动扫描和注册
|
||
- [x] 插件管理API
|
||
- [x] 示例插件
|
||
|
||
### ⏳ 第二期(规划中)
|
||
- [ ] 外部JAR加载
|
||
- [ ] 独立类加载器
|
||
- [ ] 热加载支持
|
||
- [ ] 插件上传API
|
||
|
||
### 📅 第三期(未来)
|
||
- [ ] 插件依赖管理
|
||
- [ ] 插件市场
|
||
- [ ] 插件沙箱
|
||
- [ ] 插件评级系统
|
||
|
||
## 📚 相关文档
|
||
|
||
- [插件化架构设计](../docs/06-插件化架构设计.md)
|
||
- [插件开发指南](../docs/07-插件开发指南.md)
|
||
- [后端技术设计](../docs/02-后端技术设计.md)
|
||
|
||
## 🤝 贡献
|
||
|
||
欢迎贡献新的插件!请遵循开发规范并提交Pull Request。
|
||
|
||
---
|
||
|
||
**最后更新**: 2025-01-13
|
||
**版本**: v1.0
|