如何做介绍监控公司的网站/信息流广告优化师
随着项目越来越大,很多基础的功能模块需要被拆解出来,单独管理。一方面一些基础模块很稳定,不需要再花团队精力去维护,另一方面有些模块可以供其他项目复用,所以组件化势在必行。
- 项目拆解。将基础模块拆解出来,例如底层网络,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文件,可以手动将属性文件添加到对应的工程中(参考考:https://docs.conan.io/en/latest/integrations/build_system/msbuild.html),如果是CMake则生成conanbuildinfo.cmake依赖文件供CMake项目使用。
conan也有对应的VS插件,会自动检测本地的conanfile.txt依赖配置文件,完成安装和添加属性文件到VS。
需要注意的是:conan会根据当前的环境不同(Debug,Release,X86,X64)生成不同的属性依赖文件,所以conanbuildinfo.props属性文件需要放在不同目录分开管理,这是因为VS对于不同类型的工程都有单独的属性文件。
可按如下方式安排conan生成目录: Debug/property.conan Release/property.conan.
一个简单的组件打包配置脚本:
from conans import ConanFile, MSBuildclass CoreCenterConan(ConanFile):license = "MIT"url = "http://git.xxxxxx.com/ci/corecenter.git"settings = "os", "compiler", "build_type", "arch"exports_sources = "*"generators = "visual_studio"def build(self):msbuild = MSBuild(self)msbuild.build("corecenter.sln")def package(self):self.copy("*.h", dst="include", src="source")self.copy("*.dll", dst="bin", keep_path=False)self.copy("*.lib", dst="lib", keep_path=False)def package_info(self):if self.settings.build_type == "Debug":self.cpp_info.libs = ["corecenter_d"]else:self.cpp_info.libs = ["corecenter"]
打包:conan create . corecenter/0.0.1@user/stable -s arch=x86 -s compiler.version=15 -s build_type=Debug
conan create . corecenter/0.0.1@user/stable -s arch=x86 -s compiler.version=15 -s build_type=Release
将Debug和Release下的组件打包到corecenter/0.0.1中,
上传: conan upload corecenter/0.0.1@user/stable --all -r=localconan
一个简单的依赖安装配置:
[requires]
corecenter/0.0.1@user/stable[generators]
visual_studio[imports]
bin,*.dll-> ../
安装依赖:conan install . corecenter/0.0.1@user/stable -s arch=x86 -s compiler.version=15 -s build_type=Debug,将生成conanbuildinfo.props放到Debug/property.conan中,然后手动添加到VS中。Release同样道理,放到Release/property.conan中,手动添加到Relase的属性中。