【问题标题】:Why use maven if already using git?如果已经在使用 git,为什么还要使用 maven?
【发布时间】:2014-07-25 14:17:10
【问题描述】:

据我了解,maven 引入了依赖项。但是,如果我已经将依赖的 jar 拉入一次并将它们停放在 git 中,我为什么需要 maven?

即使有多个开发者,一旦依赖在git中,每个开发者在拉取git repo的时候都会得到所有的依赖,那么哪里需要maven呢?

我知道这个问题可能被认为是“基于意见的”,但我想了解如果依赖项已经在源代码控制中,maven 提供了什么优势。

编辑:我说的是固定的第三方依赖项,例如 jersey、jackson 等,而不是项目 jars。

【问题讨论】:

  • 那么当你添加一个新的依赖并且该依赖依赖于其他东西时怎么样?使用 maven,这将自动得到处理。
  • 除了一般的区别之外,Maven 更像是一个构建工具,想想一个大型应用程序,有 100 个依赖项(其中一些可能存在循环依赖项)。您想将它们从大约 100KB 的大小扩大到 100MB 甚至更大吗?
  • 除非您打算编辑依赖项,否则没有真正的理由将它们放入git。将构建控制和源代码控制分开。

标签: git maven


【解决方案1】:

如果已经使用锤子,为什么还要使用剪刀?

Git 是一个Source 代码管理系统,Maven 是一个二进制 工件管理和构建系统。

将二进制依赖项放入 SCM 被认为是不好的做法,而且会浪费网络和存储资源。

当有人克隆您的 repo 并构建它时,这通常不是他们的第一个 Maven 构建,因此您项目的许多传递依赖项很有可能已经在他们的本地存储库中,因此他们不必下载这些依赖项再次。

【讨论】:

  • “Maven 是一个二进制工件管理系统”?你确定你不是在考虑人工制品或关系吗?
  • 即使是独立的 Maven 也可以管理本地存储库中的二进制工件(除了做一些其他事情......)。当然,Maven 最好与 Nexus 等存储库管理器结合使用。
猜你喜欢
  • 2023-01-16
  • 1970-01-01
  • 2017-10-03
  • 1970-01-01
  • 1970-01-01
  • 2010-09-12
  • 2015-02-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多