Agregar el numero de revisión en el jar/war
Con la configuración adecuada, se puede agregar el numero de revisión en el archivo META-INF/MANIFEST.MF que se encuentra dentro del jar o de war, ejemplo:
Manifest-Version: 1.0 SCM-Revision: 276480 Archiver-Version: Plexus Archiver Built-By: miuler Created-By: Apache Maven 3.3.3 Build-Jdk: 1.8.0_65
El campo SCM-Revision nos indica que este artefacto ha sido crado a partir de la revisión 276480 de suversion.
La primera es un <scm> básicamente es para que el plugin de svn no de error, esta es una sección dummy, que no hace nada, pero es necesario para el svn.
La segunda sección es la del plugin buildnumber-maven-plugin que es el te brinda el numero, el cual puede puede funcionar tanto con subversion como con Mercurial.
Y la tercera sección es otro plugin propio del artefacto, ya se para jars, wars, o rars, en este ejemplo estoy usando maven-jar-plugin, y la sección principal es <SCM-Revision> donde se pone la variable que representa el numero de revisión (# de commit), para subversion se usa ${buildNumber}, y para mercurial se usa ${changeSet}
Configuración para Subversion
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <!-- ..... --> <!-- For revision number into MANIFEST.MF --> <scm> <connection>scm:svn:http://127.0.0.1/dummy</connection> <developerConnection>scm:svn:https://127.0.0.1/dummy</developerConnection> <tag>HEAD</tag> <url>http://127.0.0.1/dummy</url> </scm> <!-- For revision number into MANIFEST.MF --> <build> <plugins> <!-- For revision number into MANIFEST.MF --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>buildnumber-maven-plugin</artifactId> <executions> <execution> <phase>validate</phase> <goals> <goal>create</goal> </goals> </execution> </executions> <configuration> <doCheck>false</doCheck> <doUpdate>false</doUpdate> <revisionOnScmFailure>unknown</revisionOnScmFailure> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifestEntries> <SCM-Revision>${buildNumber}</SCM-Revision> </manifestEntries> </archive> </configuration> </plugin> <!-- For revision number into MANIFEST.MF --> </plugins> </build> </project>
Configuracion para Mercurial (hg)
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <!-- ..... --> <!-- For revision number into MANIFEST.MF --> <scm> <connection>scm:svn:http://127.0.0.1/dummy</connection> <developerConnection>scm:svn:https://127.0.0.1/dummy</developerConnection> <tag>HEAD</tag> <url>http://127.0.0.1/dummy</url> </scm> <!-- For revision number into MANIFEST.MF --> <build> <plugins> <!-- For revision number into MANIFEST.MF --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>buildnumber-maven-plugin</artifactId> <executions> <execution> <phase>validate</phase> <goals> <goal>create</goal> <goal>hgchangeset</goal> </goals> </execution> </executions> <configuration> <doCheck>false</doCheck> <doUpdate>false</doUpdate> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifestEntries> <SCM-Revision>${changeSet}</SCM-Revision> </manifestEntries> </archive> </configuration> </plugin> <!-- For revision number into MANIFEST.MF --> </plugins> </build> </project>