3

我有一个处理REST和UI调用的标准Java应用程序。创建和管理应用程序版本(major.minor.release.build)的最佳方式是什么?我在堆栈中使用Subversion,Maven,Bamboo(连续构建)和Spring。我希望该版本与SVN,Bamboo和Maven捆绑在一起。并且,希望能够在启动时记录版本 - 可能使用一些Spring bean。处理Java Web应用程序版本控制的最佳方法是什么?

必须有框架/模式来帮助解决这个问题。我宁愿不推出自己的。

谢谢!

回答

4

为什么不使用Semantic Versioning?这是大多数人现在所期望的,它的定义非常明确,并且在那里。对我来说足够了。

Maven有一个发布插件。这是首先设置的熊,但一旦工作,它运行良好。它确保所有内容都被清理干净,标记正确,并与版本号一起完成魔术。这不是一个值得期待的问题,但至少现在它已经做好了。它支付设置一些Maven仓库。我们使用Nexus,并且可以推荐,但我也听到了很多有用的东西。

在测试过程中,我们不会过多地依赖maven版本,而是依赖于构建编号,我们将它放在网页和类似构件上的离散位置,以便我们可以快速确定我们正在讨论的确切构建。我们使用hudson来提供环境变量的内部版本号,但是Bamboo也必须提供。过滤器复制功能使这非常简单。

Hudson标记VCS(我们使用git,但这并不重要)与内部版本号和Maven发布插件标签发布。

1

您可以使用maven build-number插件(http://mojo.codehaus.org/buildnumber-maven-plugin/)在您的工件中包含SCM修订号,例如,在过滤的资源中,如属性文件。

如果您使用Artifactory作为二进制回购,那么它也可以使用内部版本号标记您的二进制工件,并从工件到创建它的CI服务器版本具有完全可跟踪性。目前这由Hudson, TeamCity and Bamboo支持。

相关问题