【问题标题】:Manager local repository管理本地存储库
【发布时间】:2015-02-25 22:39:56
【问题描述】:

我来自 Java 世界。我在 C++ 世界中寻找 Apache Maven 替代品。我想我找到了正确的项目。我的问题很少,也没有找到答案。

是否可以管理本地存储库。比方说,我从事 5 个相似但不同的项目,这个项目几乎共享相同的依赖项。每个项目是否会在每个项目中存储自己的依赖项,或者是否有一个“系统”范围(每个用户)的本地存储库来存储依赖项?

是否可以仅“发布”到本地文件夹,以便其他项目可以“看到”依赖块或者它必须通过 bii Internet 存储库?

或者我错了 - 关于 bii 的工作原理。

看起来不错的项目。继续努力。

【问题讨论】:

    标签: c++ biicode


    【解决方案1】:

    现在,项目充当虚拟环境,每个项目都包含并构建其依赖项。这适用于快速发展的库。想象一下,你有 5 个类似的项目都依赖于同一个库 A,版本 0。在处理其中一个项目时,你可以对 A 进行修改并发布一个新版本,这是一个破坏 API 的修改。其他 4 个项目将根据版本 0 继续,并且不会中断。当您迁移到这些项目时,您可以轻松更新它们的依赖项并修复损坏。

    如果在 linux 中工作,您可以直接在不同项目之间共享同一个库,如果在 linux 中工作,则在 windows 中不工作。

    对于可以在系统范围内安装的非常稳定的大型项目,依赖已安装的版本可能更方便。 CMake 可以通过 FindXXX() 轻松实现这一点。您可以使用 CMake install 安装系统范围的二进制文件,或者您甚至可以使用 CMake 脚本或 biicode python 挂钩来自动下载和安装系统范围的这些库。检查,例如:http://www.biicode.com/diego/opencvex,OpenCV 使用 biicode python hook 管理并安装在系统范围内。

    目前没有“本地”发布,如果您想在项目之间共享这种方式,是的,您必须通过 biicode 云服务器,只需使用“bii publish”。

    但是,我们正在向开源过渡。我们可能会首先发布客户端代码,然后我们将发布可以在内部部署的服务器。尚未实现,但未来的功能是该服务器可以充当云服务器的代理,您可以发布到本地实例,但从云服务器读取。通过本地安装此服务器,您将能够在本地发布。

    【讨论】:

    • 我想我必须更深入地研究 CMake。有趣的是,CMake 是以“local-ish”方式安装的,所以我的环境中现在有两个版本的 CMake(我使用 Ubuntu 14.04 LTS x64)。我认为所有库都以相同的方式“存储”。正如我所说,我每天都使用 Apache Maven。我有“安装”发布到本地存储库和“发布”发布到远程存储库。因此,为您的未来计划大加 +1,听起来很棒。
    • 是的,CMake >3.0是本地安装的,因为发行版支持的主流版本是CMake 2.8,但是CMake已经是3.2了。用户要求我们的安装不要干扰系统 2.8,所以我们在本地安装并创建了一个指向它的 /.biicode/cmake_path 文件。同样,OpenCV 和 Boost 等其他大型库也安装在该位置,该位置适用于所有项目的用户范围。但是大部分库其实都是在每个项目里面的源代码,一种virtualenv,非常方便直观的管理不同的版本,调试等。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-19
    • 2013-05-04
    • 1970-01-01
    • 1970-01-01
    • 2012-12-10
    • 2015-09-22
    • 2016-11-16
    相关资源
    最近更新 更多