2014-10-24 2 views
0

내 응용 프로그램의 버전을 저장하는 가장 좋은 방법은 무엇입니까?Java-Git 프로젝트에 버전 저장

나는 semantic version number을 Git 저장소에 저장하기 위해 Git tagging을 사용합니다. 그러나 프로그램의 사용자에게 버전 번호를 인쇄하고 싶습니다 (f.ex. 사용자가 ./myprogram --version로 전화 할 때). 그래서 나는 매번 새로운 버전마다 Java 소스 코드에서 String 상수를 수동으로 변경해야했습니다.

Git 저장소의 버전 번호와 소스 코드를 동기화하는 더 효율적인 방법이 있습니까?

+1

프로그래머에 알맞은 대답은 교환 스택 찾았 http://programmers.stackexchange.com/questions/141973/how-do-you-achieve-a-numeric-versioning-scheme-with-git – Drejc

+1

maven을 사용한다면 [git-commit-id-plugin] (https://github.com/ktoso/maven-git-commit-id-plugin)을 사용할 수 있습니다. 당신이하지 않는다면 ... 확실히, 당신이 사용하고있는 빌드 도구에 대한 플러그인 일 것입니다. 프로그램에서 읽은 파일에 버전 번호를 씁니다. – musiKk

+0

@musiKk : 멋진 팁,이 작업을 위해 빌드 도구를 사용할 생각이 없습니다. 'sbt'에서 나는 [sbt-release] (https://github.com/sbt/sbt-release)를 발견했다. 당신은 대답으로 써야합니다. 그래서 이것을 받아 들일 수 있습니다. – Sonson123

답변

1

우리 프로젝트에서는 maven에 git-commit-id-plugin을 사용합니다. 프로그램에서 런타임에 읽을 수있는 내용을 생성 할 수 있습니다 (예 : 정적 필드가 들어있는 Java 클래스 또는 읽은 속성 파일).

maven을 사용하지 않는 경우 빌드 도구 용 플러그인이 있거나 적어도 다른 사람이 제안한대로 git describe을 호출 할 가능성이 있습니다.

2

당신은 당신이이 라인을 스크립트에 넣어 빌드 과정에서 해당 스크립트를 실행하는 경우

git describe [--abbrev=0] > localFileForTag 

를 사용하여 자식의 현재 태그를 얻을 수 있습니다, 당신은 로컬 파일의 현재 태그를 저장할 수 있습니다. 프로그램은 파일 내용을 읽고 인쇄해야합니다.

관련 문제