管理Java EE Web应用程序工件版本值得吗?

时间:2012-07-21 23:00:51

标签: java java-ee maven

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

我已经意识到很长一段时间,我没有更改生成的工件的版本,因为它只会增加工作量 - 更改所有相关版本的版本等

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

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

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

2 个答案:

答案 0 :(得分:0)

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

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

  • 如果您依赖第三方软件库,它们会随时间而变化。这些库反过来依赖于其他库。开源世界迅速发展,尽管Maven / ivy等工具为我们提供了管理这一工具的工具,但它并不好玩。
  • 您发布的软件会随时间而变化。假设您有几个开发人员,您是否注意到您部署的环境中发生了一些您无法重现的奇怪事情?如果没有二进制版本,您如何回滚或重新创建问题?
  • 假设情况最糟糕,如果部署是直接从开发人员的PC发生的,那么您如何确定他/她是否实际提交了更改?

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

答案 1 :(得分:0)

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