Каков наилучший способ управления версиями веб-приложений Java? - PullRequest
3 голосов
/ 25 июня 2010

У меня есть стандартное Java-приложение, которое обрабатывает вызовы REST и UI.Каков наилучший способ создания и управления версией приложения (major.minor.release.build)?Я использую Subversion, Maven, Bamboo (непрерывная сборка) и Spring в стеке.Я бы хотел, чтобы версия была связана с SVN, Bamboo и Maven.И, хотел бы иметь возможность регистрировать версию при запуске - вероятно, с использованием некоторого компонента Spring.

Там должен быть каркас / шаблон, чтобы помочь с этим.Я бы предпочел не кататься самостоятельно.

Спасибо!

Ответы [ 2 ]

4 голосов
/ 25 июня 2010

Почему бы не использовать Семантическое управление версиями ? Это то, что большинство людей ожидают в настоящее время, оно довольно четко определено, и оно там. Достаточно хорошо для меня.

Maven имеет плагин релиза. Это медвежья установка в первую очередь, но когда она работает, она работает хорошо. Он делает все возможное, чтобы убедиться, что все правильно проверено, помечено и правильно работает с номерами версий. Это не просьба с нетерпением ждать, но, по крайней мере, сейчас это сделано правильно. Это платит за установку некоторого репозитория maven. Мы используем Nexus и можем порекомендовать это, но я слышал и хорошие вещи об артефактах.

Во время тестирования мы полагаемся не столько на версию maven, сколько на номер сборки, который мы помещаем в отдельное место на веб-страницах и подобные артефакты, чтобы мы могли быстро определить, о какой именно сборке мы говорим. Мы используем hudson, который предоставляет номер сборки в переменной окружения, но Bamboo тоже должен это указывать. Функциональность фильтра копирования делает это довольно простым.

Хадсон помечает VCS (мы используем git, но это не имеет значения) номером сборки, а плагин релиза maven помечает релизы.

1 голос
/ 25 июня 2010

Вы можете включить номер ревизии SCM в свой артефакт, используя плагин номера сборки maven (http://mojo.codehaus.org/buildnumber-maven-plugin/),, например, в отфильтрованном ресурсе, например в файле свойств.

Если вы используете Artifactoryв качестве бинарного репо он может также пометить ваши бинарные артефакты номером сборки и иметь полную прослеживаемость от вашего артефакта до сборки сервера CI, которая его создала. В настоящее время это поддерживается с Hudson, TeamCity и Bamboo .

...