También necesito confirmar algunos archivos adicionales (modificados por el plugin Maven Replacer).Lo hice de la siguiente manera:
Primero configuré Maven Release plugin para ejecutar objetivos adicionales:
<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
perfil define la configuración de Maven SMC complemento
replacerVersion
argumento es utilizado por Maven Sustituto plugin para establecer la versión correcta en algunos archivos
clean
es un objetivo estándar ejecutado por el complemento Maven Release (predeterminado: clean verify
)
replacer:replace
objetivo es responsable de la modificación de archivos
scm:checkin
lo compromete y empuje
verify
es un objetivo estándar dirigido por el plugin de Maven de lanzamiento (por defecto: clean verify
)
siguiente que configura 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}
permite utilizar la misma configuración para cambiar de un desarrollo para un lanzamiento y luego del lanzamiento a una próxima versión de desarrollo.
Finalmente he definido la versión de Maven SCM plugin quiero usar:
<plugin>
<artifactId>maven-scm-plugin</artifactId>
<version>1.9.5</version>
</plugin>
y configuración en el perfil release
(he definido en el perfil para evitar que compromete accidentales durante no liberación de construcción):
<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>
Gracias a que después de la ejecución de un comando:
mvn release:prepare -DdevelopmentVersion=1.2.1-SNAPSHOT -DreleaseVersion=1.2.0 -Dtag=1.2.0
veo 4 se compromete:
- [maven-SMC-plugin] configurar la versión 1.2.0 de archivos
- [experto de liberación-plugin] preparar liberar 1.2.0
- [maven-SCM- plugin] configurar la versión 1.2.1-SNAPSHOT en archivos
- [experto de liberación-plugin] prepararse para la próxima iteración de desarrollo
Qué archivos deben representar la versión de su lanzamiento? – khmarbaise
Según [el documento del complemento de maven-release] (http://maven.apache.org/plugins/maven-release-plugin/examples/prepare-release.html), solo ** Confirma los POM modificados **. – yorkw