3

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

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

谢谢!

4

2 回答 2

4

为什么不使用语义版本控制?这是当今大多数人所期望的,它的定义非常明确,并且已经存在。对我来说已经足够好了。

Maven 有一个发布插件。这是首先设置的熊,但是一旦它工作它就会很好地工作。它完成了所有细节,确保一切都被干净地签入,正确标记,并使用版本号发挥魔力。这不是一个期待的要求,但至少现在它已经完成了。设置一些 Maven 存储库是值得的。我们使用 Nexus,可以推荐,但我也听说过人工制品的好东西。

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

Hudson 使用内部版本号标记 VCS(我们使用 git,但这无关紧要),并且 maven 发布插件标记发布。

于 2010-06-24T20:21:03.287 回答
1

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

如果您使用 Artifactory 作为二进制存储库,那么它还可以使用构建号标记您的二进制工件,并具有从您的工件到创建它的 CI 服务器构建的完全可追溯性。目前Hudson、TeamCity 和 Bamboo支持此功能。

于 2010-06-24T23:39:58.257 回答