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支持。

相關問題