0

我有几个基于 Maven 的 Java Web 应用程序,我不发布,只部署。

我已经意识到很长一段时间以来,我都没有更改生成的工件的版本,因为它只会增加工作 - 更改所有依赖项等的版本。

即使我在一个团队中工作,我们也不太关心版本,并且一直有 1.0.0-SNAPSHOT,而是共享代码并全部重建。

我的问题:我将使用工件版本做什么?我错过了一些利用它的好方法吗?

更新:这个问题不是关于证明 Maven 和依赖关系的合理性。这是关于我的网络应用程序的版本

4

2 回答 2

0

仅根据自己的经验,我决定不跟踪 Web 应用程序工件的版本。由于它不公开并且我们是一个小团队,我们只使用 git 标签进行版本控制,并将 maven 工件始终保持为 1.0-SNAPSHOT。

于 2012-12-16T04:43:19.047 回答
0

我假设这个问题真的是为了证明使用 Maven 的开销是合理的?在这种情况下,它与以下内容有关:

在我看来,对二进制文件进行版本控制与对源代码进行版本控制一样重要:

  • 如果您依赖第 3 方软件库,它们会随着时间而改变。这些库反过来又依赖于其他库。开源世界发展迅速,虽然它并不有趣,但至少像 Maven/ivy 这样的工具为我们提供了管理它的工具。
  • 您发布的软件会随着时间而变化。假设您有多个开发人员,是否曾经注意到在您部署的环境中发生了无法重现的奇怪事情?如果没有二进制版本控制,您如何回滚或重新创建问题?
  • 假设最坏的情况,如果直接从开发人员的 PC 上进行部署,您如何确定他/她实际上已经提交了更改?

为了获得 Maven 的全部功能,我强烈建议您在本地使用Nexus等 Maven 存储库管理器。除了帮助处理 3rd 方依赖项之外,它也是存储应用程序版本的理想场所。即使您继续生成 1.0.0-SNAPSHOT,Nexus 也会确保每个应用程序构建都存储为存储库中唯一的时间戳修订。随着时间的推移,可以将 Nexus 配置为清除您的旧 SNAPSHOTS。

于 2012-07-22T10:47:37.503 回答