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
'IT TIP' 카테고리의 다른 글
C #의 모니터 대 뮤텍스 (0) | 2020.12.01 |
---|---|
열려있는 파일이 너무 많음 : 열려있는 파일 수, 파일 내용 및 JVM이 열 수있는 파일 수 (0) | 2020.12.01 |
다른 디렉터리의 테스트가 동일하게 호출 될 때 테스트 검색 실패 (0) | 2020.12.01 |
SVG 텍스트 요소에 색상을 적용하는 방법 (0) | 2020.12.01 |
Kafka : 소비자 API 대 Streams API (0) | 2020.12.01 |