package - Ocaml:使用 opam 从我的沙丘项目中的 Git 加载外部库

标签 package ocaml opam dune

我有我的主要沙丘项目,其中包括一个小型解析器库的实现。理想情况下,我想将解析器库放入不同的包中,并以某种方式依赖于我的主沙丘项目。

我在 Haskell 中使用堆栈执行此操作的方法是将我的解析器库放在单独的 git 存储库中,然后将该 git 存储库作为依赖项包含在我的主项目中。

尽管如此,我还没有找到依赖 git 项目的方法。包含外部包的唯一方法真的是将它们发布到 opam 存储库吗?

最佳答案

您可以使用 vendoring 将沙丘子项目包含到您的项目中。唯一的限制是依赖项必须是沙丘项目本身(即具有沙丘文件)。

如果您有许多供应商的依赖项,您可能会发现 opam-monorepo插件很有用。这个插件将帮助您管理它们,但当然,它要求依赖项是沙丘项目并具有 opam 文件(后者没有那么严格,因为您始终可以从沙丘文件生成 opam 文件)。值得注意的是,使用 opam monorepo,您的项目最终将独立于 opam 或 opam 依赖项。本质上,opam monorepo 只会帮助您将所有依赖项提供到项目中,以便稍后您可以从同一源代码树构建所有内容。

关于package - Ocaml:使用 opam 从我的沙丘项目中的 Git 加载外部库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72638027/

相关文章:

包定义中的 Oracle 用户定义类型

python - 分发一个简单的 python 脚本

android - 获取包中基类的所有子类的实例

path - 创建了私有(private)包并安装了 pip 但无法使用 python 导入

ocaml - 原因模块系统

ocaml - 简单的 OCaml 练习

ocaml - 如何在 OPAM 中列出当前的软件包版本?

ocaml - 值(value)限制

ocaml - 多个工作进程的 ocp-build.conf 语法?

windows - 如何在 Windows 上使用 OCam 安装 OCaml?