2016-08-09 2 views
0

소스 제어용 TFS와 배포 용 Octopus를 사용하여 maven으로 프로젝트를 빌드하고 있습니다.Maven 버전 관리 및 저장소 - 빌드 중 업데이트 방법

현재 TFS CI 빌드를 수행하고, 출력에서 ​​zip 파일로 낙석 배포 패키지를 만들고, 낙지를 사용하여 내 배포 대상에 배포하고 패키지를 추출하고 응용 프로그램을 설치할 수 있습니다.

새로운 빌드가 수행 될 때 (아마도 야간) 응용 프로그램 프로젝트의 버전을 증가시키고 싶습니다.

mvn versions:set -DnewVersion=x.y.z을 사용하여 업데이트 된 패키지를 네트워크 저장소로 푸시하기 위해 빌드 서버에서 프로젝트의 새 버전을 설정하는 올바른 방법이 있습니까? 그럼 마침내 내 maven 꾸러미를 만들겠습니까?

내 빌드 서버에서 버전을 발행 한 다음 빌드에서 패키지의 업데이트 된 버전을 사용하는 가장 좋은 방법은 확실하지 않습니다.

나는 여기에 막대기의 끝이 틀린 것처럼 보입니다. 모든 포인터 크게 감사.

+0

어떤 Maven 버전을 사용하십니까? – khmarbaise

+0

@khmarbaise 3.1.1을 사용하고 있습니다. – dougajmcdonald

+0

왜 모든 빌드마다 버전을 늘리시겠습니까? SNAPSHOT 또는? MANIFEST 파일에 TFS의 버전 정보를 넣지 않으면 서버의 파일을 고유하게 식별하지 못합니다. – khmarbaise

답변

0

이미 Maven 3.2 이상에서 Maven 3.3 이상을 사용했다면보다 편리하게 Maven 3.1에 있었을 수 있습니다.

mvn build-helper:parse-version versions:set \ 
    -DnewVersion=\${parsedVersion.majorVersion}.\${parsedVersion.minorVersion}\${parsedVersion.nextIncrementalVersion} \ 
    versions:commit 

그러나 지금까지의 내가 버전을 알고 : 아마 메이븐 SCM .... (I를위한 TFS의 지원을 기반으로 작동하지 않습니다 커밋 당신은 build-helper-maven-plugin를 통해 가서 versions-maven-plugin 당신이 할 수있는 단지를 통해 필요 TFS로 테스트 한 적이 없다.) 그러나 커밋 단계는 다른 무언가에 의해 수행됩니다.

+0

이것은 내 걱정거리였습니다. release : prepare 명령은 여러 가지 문제에 대해 현재 작동하지 않습니다. 주로 TFS를 통한 maven의 경로 설정이 의미가 없습니다 (따라서 실행해야 할 대상을 찾는 데 어려움이 있습니다). 내가 믿는 것은 소스 제어 버전의 POM이 내가 예상 한 것보다 버전이라는 것입니다. 예. 나는 0.1.0 버전을 사용 중이며 버전을 통해 버전을 0.1.1로 설정하도록 mvn에게 요청합니다. set로 설정하면 작동하지만, 배포를 시도하면 소스 제어에서 이전 버전 0.1.0을 빌드하는 것처럼 보입니다. . – dougajmcdonald

+0

나는 빌드 서버가 할 수있는 일을해야한다고 생각한다. 개발자들은 로컬에서해야 할 일과 로컬 (네트워크) 메이븐 레포 (그리고 언제)에 배포해야 하는지를 알아 낸다. – dougajmcdonald

+0

maven-release-plugin은 TFS에서 작동하지 않습니다. 왜냐하면 나는 그것을 테스트했기 때문입니다. 당신은 버전을 통해 그들을 바꿀 수 pom 파일을 체크 아웃해야합니다 : TFS에서 설정 .... – khmarbaise