该项目是一个离线的 ETL 工具,通过插件化架构支持多种数据源和目标。核心组件包括 Engine、JobContainer,以及各种 Reader/Writer 插件。项目使用 Maven 管理构建和依赖。
- 用中文回复,代码注释用英文,注释写 why 不写 how
- 简洁直接,不要多余总结和解释
- 直接写代码,不需要每次确认后再生成
mvn clean package -T1C -DskipTestsmvn clean package -pl :dorisreader -amcore为核心模块,包含 Engine 和 JobContainer 等核心类。修改此模块需谨慎,确保不破坏核心运行逻辑。addax-rdbms包含多个 JDBC/SQL 相关的工具类addax-lib包含一些通用工具类和依赖管理, 若无必要,避免修改核心工具类。- 尽可能不要引入新的依赖库,尤其是核心模块和公共库。新增依赖可能引入版本冲突或增加维护负担。
- 考虑到兼容各类 RDBMS 的最低版本,因此各依赖库的版本请勿修改,除非确实需要修复安全漏洞或兼容性问题,并且在修改前先评估对现有插件的影响。
- 不需要写单元测试,所有的测试都会在目前特定构建的环境下手工执行
- 编辑一个
json格式或者yaml格式的 Job 配置文件,指定 Reader、Writer 以及相关参数,可以参考core/src/main/job下的例子 - 执行
addax.sh脚本,传入 Job 配置文件路径,例如:
sh addax.sh -job /path/to/job.json程序运行的内部流程可以参考这个文档
新增插件的开发流程可以参考plugin development 文档
- 从第一性原理解构问题 一先明确什么是必须的,再决定怎么做
- 警惕 XY 问题-多角度审视方案,先确认真正要解决的是什么,主动提出替代方案
- 解決根本问题,不要 workaround -如果现有架构不支持,重构它
- 质疑不合理的需求和方向—发现问题立刻指出,不要等我问才说,不要奉承或无脑赞同
- 架构设计时参考 ddia-principles 和 software-design-philosophy 规则
当用户明确提出“提交并创建 PR”时,默认按以下流程执行(除非用户另有说明):
- 创建新分支后再提交,分支名建议使用
feat/<topic>或fix/<topic>格式,根据本次修改的性质选择feat(新功能)或fix(修复)。例如:feat/add-protobuf-dependency。 - 使用英文编写 commit message:
title简洁明确(建议 Conventional Commits 风格)。description/body说明动机、核心改动、验证情况。
- 使用
gh命令创建 PR,不只推送分支:- 示例:
gh pr create --base master --head <branch> --title "<english title>" --body-file <file>
- 示例:
- PR 内容必须使用英文,遵循 PR 模板 进行填写
- 若无特别要求,PR 设为 Ready for review(非 Draft)。
以上流程可由一句 "提交并创建 PR" 触发,不需要用户重复描述细节格式要求。