빌드 프로세스 중에 X.Y.Z
버전을 자동 증가시키기위한 작업을하고 있습니다.Maven 자동 증가 릴리스 버전
X.Y.Z-SNAPSHOT
=>X.Y.Z+1-SNAPSHOT
- 하지
X.Y.Z-SNAPSHOT
=>X.Y.Z
이 경우 우리는 오히려 버전의 작은 부분을 증가, (그것을 릴리스 버전을 만들기 위해)을
SNAPSHOT
접미사를 제거하지 않습니다
릴리스 버전이되도록 SNAPSHOT
접미사를 차단할 수 있기 때문에 메이븐 릴리스 플러그인을 사용할 수 없습니다. 그래서, 나는 버전을 증가시키는 논리를 가진 커스텀 스크립트를 만드는 것을 끝내었다.
- 체크 아웃 억지로에서
pom.xml
을 여기내 질문은 내가 가장 다음 단계를 구현할 수있는 방법이다.
- 사용자 지정 스크립트를 실행하여 버전을 늘립니다.
- 배포가 성공하면
pom.xml
변경을 커밋하십시오.
부분적으로 위의 요구 사항을 충족하는 메이븐 프로필 autoversion
을 만들었습니다. Maven은 먼저 리소스 생성 단계의 일부로 버전을 증가시킵니다. 그러나 결국 이전 버전의 프로젝트를 배포하게됩니다.
mvn -Pautoversion clean deploy
<profile>
<id>autoversion</id>
<build>
<plugins>
<plugin>
<artifactId>exec-maven-plugin</artifactId>
<groupId>org.codehaus.mojo</groupId>
<executions>
<execution>
<id>Calculate version</id>
<phase>generate-resources</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>${basedir}/autoincrementversion.sh</executable>
<arguments>
<argument>-bdj</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>1.9</version>
<executions>
<execution>
<phase>generate-resources</phase>
<goals>
<goal>edit</goal>
<goal>checkin</goal>
</goals>
<configuration>
<username>jenkins</username>
<basedir>./</basedir>
<includes>pom.xml</includes>
<message>Auto increment pom version</message>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
[INFO] ------------------------------------------------------------------------
[INFO] Building project 99.22.8
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- versions-maven-plugin:1.3.1:set (default-cli) @ project ---
[INFO] Searching for local aggregator root...
[INFO] Local aggregation root: /opt/project/auto-increment-release
[INFO] Processing com.project
[INFO] Updating project com.project
[INFO] from version 99.22.8 to 99.22.9
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.135s
[INFO] Finished at: Wed Nov 05 23:15:13 PST 2014
[INFO] Final Memory: 11M/152M
[INFO] ------------------------------------------------------------------------
요구 사항을 달성하기위한 모든 지침을 매우 높이 평가합니다.
[Maven 3.2.1] (http://maven.apache.org/docs/3.2.1/release-notes.html)을 자세히 살펴보고 속성을 통해 외부 사이트에서 직접 지원해야한다고 말하고 싶습니다. . 출시 노트 '지속적인 배송 친화적 인 버전'을 참조하십시오. – khmarbaise
포인터를 사용해 주셔서 감사합니다. 다른 여러 가지 요인을 테스트해야하기 때문에 업그레이드는 즉각적인 옵션이 아닙니다. – user6930
@ user6930,이 부분에서 Maven Release Plugin이 ""버전을 출시하기 위해 SNAPSHOT 접미어를자를 수 있음을 확신하지 못합니다 "_.실제로 버전의 가장 작은 유효 숫자를 자동 증가시키는 것을 제안합니다. 니가 원하는게 아니야? – uvsmtid