随着项目越来越大,很多基础的功能模块需要被拆解出来,单独管理。一方面一些基础模块很稳定,不需要再花团队精力去维护,另一方面有些模块可以供其他项目复用,所以组件化势在必行。
- 项目拆解。将基础模块拆解出来,例如底层网络,bugreport等等稳定,可复用的模块拆解出来。为这些单独模块创建git仓库,单独管理。
- 为各个项目编写conan脚本,用于在组件代码升级后,自动编译、打包和上传。这些功能conan都已经覆盖。
- 自动化组件管理。
前面两步参考之前的conan环境搭建和使用介绍,按部就班就可以,第三部自动化管理。代码提交后自动触发或者手动执行,组件更新发布脚本,脚本需要参数:组件名、版本号、git地址。脚本完成以下事项:
- 根据git下载对应组件代码
- 调用组件工程中的conan脚本,传入组件名称和版本号打包(conan create . name/version@user/channel)
- 上传组件到仓库 (conan upload name.version@user/channel -r=server)
- 更新管理平台
使用组件的项目编写conan依赖配置conan.txt,具体可以参考conan使用,因为conan可以根据配置中的generator生成对应VS或者CMake的依赖文件,基本上是完全自动化的过程。在编译前执行一次conan install . generator如果是VS就会生成conanbuildinfo.props文件,可以手动将属性文件添加到对应的工程中(参考考: