在实践中,如何在独立/可移植的应用程序中管理库依赖项?

How are library dependencies managed in practice, in a self-contained/portable app?

提问人:Thiago Rangel 提问时间:5/27/2023 更新时间:5/27/2023 访问量:30

问:

我不是一个有经验的程序员,我主要是自学成才的。我从来没有真正学会如何管理依赖关系,而且我在找到我需要的信息时遇到了一些麻烦,我认为这实际上是非常基本的。

我有一个 GitHub 项目,它依赖于我自己的库和第三方库。我的做法是:

  1. 从其他 GitHub 项目下载了所需的库文件
  2. 将文件放在 myAppFolder/libraries 中
  3. 在我的代码中导入了它们

这是正确的方法吗?

另外,现在我有以下问题:如何使这些依赖项保持最新?每次有新版本的库时,我都必须手动更新每个文件吗?有没有办法自动化?

我尝试使用 git 子模块,但它们从存储库下载每个文件(包括 README.md、文档、测试、示例等),而我只需要实际的库文件。

git github 依赖 可移植性 自包含

评论


答:

0赞 VonC 5/27/2023 #1

这是正确的方法吗?

通常。。。不。

像 Git 这样的源代码控制系统用于跟踪源代码中的更改,而不是二进制文件(如库)。

库是一个二进制工件,需要发布(“部署”/“推送”)到存储库工件管理器,如 NexusArtifactory

这样就可以采用声明式方法,在项目中只包含一个小的文本文件,说明您需要什么(确切版本)以及您需要它的位置。

例如:

存储库仅包含文本文件,生成工具将获取依赖项。