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