Tôi cũng cần phải cam kết một số tệp bổ sung (thay đổi bằng plugin Maven Replacer).Tôi đã làm nó theo cách sau:
Trước tiên tôi cấu hình Maven Release plugin để thực hiện mục tiêu bổ sung:
<plugin>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
<configuration>
<preparationGoals>-Prelease -DreplacerVersion="${releaseVersion}" clean replacer:replace scm:checkin verify</preparationGoals>
<completionGoals>-Prelease -DreplacerVersion="${developmentVersion}" clean replacer:replace scm:checkin verify</completionGoals>
</configuration>
</plugin>
release
hồ sơ xác định cấu hình của Maven SCM Plugin
replacerVersion
lập luận được sử dụng bởi Maven Replacer plugin để đặt phiên bản chính xác trong một số tệp
clean
là mục tiêu chuẩn do plugin Maven Release phát hành (mặc định: clean verify
)
replacer:replace
mục tiêu có trách nhiệm sửa đổi các file
scm:checkin
không cam kết và đẩy
verify
là một mục tiêu chuẩn chạy bằng Maven phát hành plugin (mặc định: clean verify
)
Tiếp theo tôi cấu hình Maven Replacer plugin:
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>replacer</artifactId>
<version>1.5.3</version>
<configuration>
<includes>
<include>${basedir}/file1.txt</include>
<include>${basedir}/file2.txt</include>
</includes>
<replacements>
<replacement>
<token><![CDATA[<pattern>.*</pattern>]]></token>
<value><![CDATA[<pattern>${replacerVersion}</pattern>]]></value>
</replacement>
<replacement>
</configuration>
</plugin>
${replacerVersion}
cho phép sử dụng cùng cấu hình cho việc thay đổi từ develo pment để phát hành và tiếp theo từ bản phát hành sang phiên bản phát triển tiếp theo.
Cuối cùng tôi đã xác định được phiên bản của Maven SCM plugin Tôi muốn sử dụng:
<plugin>
<artifactId>maven-scm-plugin</artifactId>
<version>1.9.5</version>
</plugin>
và cấu hình nó trong hồ sơ cá nhân release
(tôi định nghĩa nó trong hồ sơ cá nhân để ngăn chặn cam ngẫu nhiên trong không phát hành xây dựng):
<profile>
<id>release</id>
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-scm-plugin</artifactId>
<configuration>
<message>[maven-scm-plugin] set ${replacerVersion} version in files</message>
<includes>file1.txt, file2.txt</includes>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
Nhờ đó sau khi thực hiện một lệnh:
mvn release:prepare -DdevelopmentVersion=1.2.1-SNAPSHOT -DreleaseVersion=1.2.0 -Dtag=1.2.0
tôi thấy 4 cam kết:
- [maven-SCM-plugin] thiết 1.2.0 phiên bản trong các tập tin
- [maven-release-Plugin] chuẩn bị phát hành 1.2.0
- [maven-scm- Plugin] thiết lập phiên bản 1.2.1-SNAPSHOT trong các tập tin
- [maven-release-Plugin] chuẩn bị cho sự phát triển tiếp theo lặp
những tập tin nên đại diện cho các phiên bản phát hành của bạn? – khmarbaise
Theo [doc tài liệu của trình giải phóng maven] (http://maven.apache.org/plugins/maven-release-plugin/examples/prepare-release.html), nó chỉ ** Cam kết các POM đã sửa đổi **. – yorkw