隨著專案越來越大,很多基礎的功能模組需要被拆解出來,單獨管理。一方面一些基礎模組很穩定,不需要再花團隊精力去維護,另一方面有些模組可以供其他專案復用,所以元件化勢在必行。
前面兩步參考之前的conan環境搭建和使用介紹,按部就班就可以,第三部自動化管理。**提交後自動觸發或者手動執行,元件更新發布指令碼,指令碼需要引數:元件名、版本號、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檔案,可以手動將屬性檔案新增到對應的工程中(參考考:如果是cmake則生成conanbuildinfo.cmake依賴檔案供cmake專案使用。
conan也有對應的vs外掛程式,會自動檢測本地的conanfile.txt依賴配置檔案,完成安裝和新增屬性檔案到vs。
可按如下方式安排conan生成目錄: debug/property.conan release/property.conan.
乙個簡單的元件打包配置指令碼:
from conans import conanfile, msbuild
class corecenterconan(conanfile):
license = "mit"
url = ""
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的屬性中。 android studio 搭建元件化專案框架
在搭建元件化專案框架之前,首先要知道殼工程 庫工程 模組工程有乙個了解,然後對專案有乙個規劃。殼工程,一般不存放 用來引用存放庫工程與模組工程。庫工程,用來存放工具類 base類 自定義控制項以及第三方框架作為專案中的庫來使用。模組工程,用來存放邏輯 我們專案的引用關係與專案規劃大致如下 如果不知道...
iOS 元件化架構及建立私有專案元件
一 元件化架構的產生 二 專案元件化 專案元件化就是將專案中的各個模組按照基礎元件 功能元件 業務元件等劃分成乙個個單獨的模組,以使的各個模組間實現低耦合,可以單獨開發 測試 組合執行。三 專案元件化好處 1.業務劃分更佳清晰,新人接手更佳容易,可以按元件分配開發任務。2.專案可維護性更強,提高開發...
vue元件化專案應用的問題
最近一周都在回顧年前的專案,其中的乙個用vue做的專案,發現了很多可以優化的問題 元件化的拆分,記得之前剛入職工作的時候,部門老大給我們布置了乙個任務,就是拆分頁面,當時覺得有什麼還拆分的,不就是直接寫?來到北京之後,恰巧是公司業務比較急的時候,拿到需求之後,看到頁面就直接去寫了,因為業務的需要,當...