我一直在寻找这个问题的好答案。
通常,除最简单的项目外,任何Arduino项目都将包括:
- 主要源代码文件
MyProject.ino
- 专用于项目的库(
MyProjectLibrary1.h
,MyProjectLibrary1.cpp
...) - 第三方库(通常是免费的开放源代码,已手动添加到Arduino库目录中)
- 原理图,PCB图
- 文献资料
- ...
所有这些使得很难将一个项目的全部代码和文档保留在源代码管理下(例如,在Subversion,Git或GitHub上)。
管理项目的源代码管理意味着管理项目使用的所有文件的版本,包括第三方库。
现在,对于单个项目,我需要定义一个目录结构:
- 包括上述所有项目文件
- 我完全可以使用源代码管理工具(包括第三方依赖)
- 我可以在硬盘上的任何地方签出并从那里构建项目(它必须是由Arduino IDE施加的一个位置)
- 我可以将其压缩到一个独立的档案中,然后将其发送给朋友,以便他尽可能轻松地构建(无需额外的手动下载)
我发现Arduino项目特别棘手的是外部库依赖项的管理。Java项目开发人员为此拥有Maven存储库,这对管理所有外部部门很有帮助。但是我们没有用于Arduino库的等效系统。
我想知道其他Arduino项目制造商如何在自己的项目中处理这些方面。
还要注意,我愿意改变开发流程,包括我的IDE(目前,我大多数时候都将Eclipse与Arduino插件一起使用Eclipse,然后确保我的项目也可以直接与Arduino IDE一起使用)。