3

REST와 UI 호출을 모두 처리하는 표준 Java 응용 프로그램이 있습니다. 애플리케이션 버전 (major.minor.release.build)을 만들고 관리하는 가장 좋은 방법은 무엇입니까? Subversion, Maven, Bamboo (연속 빌드) 및 Spring을 스택에 사용하고 있습니다. 버전을 SVN, Bamboo 및 Maven과 함께 사용하겠습니다. 그리고, 약간의 Spring 빈을 사용하여 시작시 버전을 기록 할 수 있기를 원합니다.Java 웹 응용 프로그램 버전 관리를 처리하는 가장 좋은 방법은 무엇입니까?

여기에 도움이되는 프레임 워크/패턴이 있어야합니다. 차라리 내 인생을 굴리지 않을거야.

감사합니다.

답변

4

Semantic Versioning을 사용하지 않으시겠습니까? 요즘 대부분의 사람들이 기대하는 바이며, 꽤 잘 정의되어 있습니다. 나를 위해 충분하다.

Maven에 출시 플러그인이 있습니다. 이것은 처음에는 설정해야 할 곰이지만 일단 작동하면 제대로 작동합니다. 그것은 모든 것이 깨끗하게 체크인되고 적절하게 태그가 찍히고, 버전 넘버가있는 마법을하는 모든 핵심적인 일을합니다. 그것은 고대 할 것을 요구하는 것이 아니지만, 적어도 이제는 제대로 행해졌습니다. Maven 저장소를 설정하는 것이 좋습니다. 우리는 넥서스를 사용하고 그것을 추천 할 수 있습니다. 그러나 나는 좋은 것들도 들었습니다.

테스트하는 동안 우리는 메이븐 버전을 너무 많이 사용하지 않고 빌드 번호에 의존합니다. 빌드 번호는 웹 페이지 및 유사한 아티팩트의 개별적인 위치에 배치되므로 정확한 빌드를 신속하게 결정할 수 있습니다. 우리는 환경 변수에 빌드 번호를 제공하는 hudson을 사용하지만 Bamboo도이를 제공해야합니다. 필터 복사 기능을 사용하면 매우 간단합니다.

허드슨은 빌드 번호와 maven 릴리스 플러그인으로 출시 된 VCS (우리는 git를 사용하지만 중요하지 않음)에 태그를 붙입니다.

1

maven 빌드 번호 플러그인 (http://mojo.codehaus.org/buildnumber-maven-plugin/)을 사용하여 이슈에 SCM 개정 번호를 포함 할 수 있습니다. 속성 파일과 같은 필터링 된 리소스

Artifactory를 이진 저장소로 사용하는 경우 이진 아티팩트에 빌드 번호로 태그를 지정하고 아티팩트에서 생성 된 CI 서버 빌드까지 추적 할 수 있습니다. 현재 Hudson, TeamCity and Bamboo으로 지원됩니다.