1 製品倉庫產品
Artifactory |
是一款二進制存儲管理工具,用來管理構建構建工具(如:gradle)等所依賴的二進制倉庫,以方便管理第三方庫和發佈目標版本庫,從而提高軟件開發效率。它提供大量的插件以利於和不同工具之間的整合,內部使用權限管理更加安全,並支持高併發等等特性。 優點:功能全面,方便集成 缺點:收費,而且很貴。免費的版本功能閹割嚴重 |
Nexus |
也是一款二進制存儲管理工具,與Artifactory相比,免費。可以集成jekins、conan等 優點:免費 缺點:插件不如前者豐富,集成也需要手動 |
2 Nexus集成conan方案
(2.1) 安裝nexus
直接官網下載最新版即可https://help.sonatype.com/repomanager3/download,下載後直接控制檯運行bin中:
./nexus.exe /install
./nexus.exe /run
(2.2) nexus默認並不支持conan倉庫,需要手動安裝額外的插件
插件git:https://github.com/sonatype-nexus-community/nexus-repository-conan
按照文檔說明,插件需要源碼編譯安裝:
mvn clean package -PbuildKar //構建
完成構建後,Copy the nexus-repository-conan-0.0.6-bundle.kar file from your ./target folder to the ./deploy folder for your Nexus Repository installation.
重啓nexus服務
(2.3) 登錄nexus,創建倉庫
能在Browse裏面看到,就算創建成功
(2.4) conan倉庫的配置
(2.4.1) 創建conan倉庫配置
注:blob是數據實際存儲的路徑,爲了方便移動和備份,建議不是默認
(2.4.2) 配置conan的security realms
激活conan的登錄token realm,否則conan客戶端無法登錄Nexus
然後就可以愉快體驗conan管理成果物了!
然而,nexus的conan插件更新慢,功能不全,截止至20191222甚至連search命令都不支持。
3 Artifactory 集成 conan 方案
下載Artifactory cpp版本:https://bintray.com/jfrog/product/JFrog-Artifactory-Cpp-CE/view
測試使用的是JFrog Artifactory CE 進行的私有包管理,具體的安裝可以參考相關文檔
啓動JFrog Artifactory CE
使用docker
docker run -d -p 8081:8081 docker.bintray.io/jfrog/artifactory-cpp-ce
conan 安裝
使用mac python3
pip3 install conan
(1)創建 conan 私服
JFrog Artifactory CE 操作
基本配置保持默認即可
(2)conan 集成使用
配置私服地址
參考界面
conan remote add myconan http://localhost:8081/artifactory/api/conan/conan-local
登陸私服,提示信息如下
conan user -p APcwSGCR7qgJ6KC -r myconan admin
Change 'myconan' user from None (anonymous) to admin
(3)基本Conan 項目創建
- 創建一個包
conan new Hello/0.1 -t
File saved: conanfile.py
File saved: test_package/CMakeLists.txt
File saved: test_package/conanfile.py
File saved: test_package/example.cpp
- 創建一個基本的二進制包
conan create . demo/testing
(4)部署
conan upload <recipe> -r myconan --all
<recipe> 格式: <NAME>/<VERSION>@<USER>/<CHANNEL>
具體如下:
conan upload Hello/0.1@demo/testing --all -r=myconan
效果
說明:
總的來說conan 對於包管理還是比較方便的,相比直接使用automake,cmake 有好多方便的地方,實際的使用還要多看官方文檔
參考資料
https://docs.conan.io/en/latest/introduction.html
https://www.jfrog.com/confluence/display/RTF/Installing+with+Docker