IT TIP

Maven 버전 관리 모범 사례

itqueen 2020. 12. 1. 20:21
반응형

Maven 버전 관리 모범 사례


Maven 프로젝트의 버전을 변경하고이 버전을 릴리스 한 다음 다시 *-SNAPSHOT개발 로 돌아가는 가장 좋은 방법은 무엇입니까?

현재 다음을 수행하고 있습니다.

  • 현재 버전 (가장 가능성과 검색 SNAPSHOT에서)를pom.xml
  • 증분 버전 ( mvn -DnewVersion=<something> versions:set), 패치에 대한 Maven 아티팩트 버전 질문에 설명 된 규칙 을 따릅니다.
  • mvn:install repo로 전송
  • 다시 한 번 SNAPSHOT후위를 추가하는 버전 이름 변경 .
  • 변경 사항 커밋 (일부 버전 제어 시스템 사용)

나는 내가 뭔가 잘못하거나 비효율적이라는 강한 느낌을 받는다.


아티팩트를 릴리스 하려면 maven-release-plugin사용해야합니다 . 자동으로 모든 버전이 릴리스 플러그인에 의해 증가됩니다. 1.0.3-SNAPSHOT에서 1.1.0-SNAPSHOT로 이동하는 경우는 예외 일 수 있습니다. Maven으로 개발하기위한 타임 라인은 다음과 같습니다.

1.0.0-SNAPSHOT
1.0.0
1.0.1-SNAPSHOT
1.0.1
1.0.2-SNAPSHOT
1.0.2
..

SNAPSHOT에서 릴리스 버전으로 이동하려면 maven 릴리스 플러그인을 사용해야합니다. 다음을 사용하여 간단히 아티팩트를 릴리스 할 수 있습니다.

첫 번째 단계:

mvn release:prepare 

마지막 단계 :

mvn release:perform

기본값을 적용하려면 다음과 같이 -B를 추가하면됩니다.

mvn -B release:prepare 

또는 이러한 단계를 단일 단계로 결합 할 수 있습니다.

mvn -B release:prepare release:perform

위의 내용은 CI 솔루션 내에서도 사용할 수 있습니다.

mvn install을 사용하는 것은 로컬 저장소에 아티팩트를 설치하기위한 것입니다. 저장소 관리자 (내가 추천 할 수있는)와 같은 실제 관리자로 작업하는 경우 다음을 사용해야합니다.

mvn deploy 

릴리스 플러그인을 사용하기위한 한 가지 요구 사항은 pom에서 scm 영역을 구성하는 것입니다 (버전 제어를 사용하고 계십니까?).


릴리스 단계를 더 많이 제어하려면 maven-release-plugin (mrp)이 그다지 도움이되지 않습니다.

이 경우 버전증가시키고 SNAPSHOT 접미사를 추가 / 제거 할 수 있도록 versions-maven-plugin수정했습니다 .

이러한 새로운 기능 덕분에 mrp와 동일한 작업을 수행하는 스크립트를 작성할 수 있지만 각 단계를 완전히 제어 할 수 있습니다.

예를 들어, mrp는 실제로 빌드를 시도 하기 전에 변경된 버전을 커밋 합니다. 빌드가 실패하면 해당 커밋을 되돌 리거나 SVN의 경우 다른 되돌리기-커밋을 수행해야합니다.

참고 : 저는 증가 함수의 원래 작성자가 아닙니다. 나는 github 페이지에 명시된 바와 같이 autoincrement-versions-maven-plugin에서 채택했습니다.

참고 URL : https://stackoverflow.com/questions/9554688/maven-versioning-best-practices

반응형