Plug-in buildnumber-maven-plugin
Ako zaviesť do názvu artefaktu v Mavene číslo revízie v SVN? Napr: maven-svn-version-demo-r1120-0.0.1-SNAPSHOT.jar?
Mavenovský plug-in buildnumber-maven-plugin dokáže zistiť posledné číslo revízie v SVN a zaviesť ho do POMu ako premennú buildNumber.
Ak ho chceme zmysluplne použiť, potrebujeme:
- deklarovať plug-in v POMe
- deklarovať cestu k SVN úložisku
- niekde zmysluplne využiť premennú
buildNumber
Deklarácia v pom.xml
Deklarácia je jednoduchá:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
</plugin>
Touto deklaráciou zavesíme na úvodnú validačnú fázu cieľ buildnumber:create, čo znamená, že plug-in sa bude automaticky volať vo všetkých štandardných cieľoch.
Cesta v SVN úložisku
Na to, aby plug-in dokázal zisťovať čísla revízii na SVN serveri, je potrebné deklarovať element <scm> s koordinátmi úložiska:
<scm>
<connection>scm:svn:http://kapsa.sk/svn/kapsa/maven-svn-version-demo</connection>
</scm>
Zmysluplné použitie
Premennú buildNumber môžeme využiť napr. v zmene názvu artefaktu:
<finalName>${project.artifactId}-${project.version}-r${buildNumber}</finalName>
Zostavenie
Ak teraz zavoláme mvn package, výsledkom bude maven-svn-version-demo-r1120-0.0.1-SNAPSHOT.jar.
Čísla verzií?
V štandardnom správaní sa číslo revízie prevezme z lokálnej kópie. V niektorých prípadoch však chceme mať istotu, že revízia v lokálnej kópii a revízia na vzdialenom serveri sa zhodujú. Potom využime dve nastavenia:
doUpdate: pred pridelením revízie sa synchronizuje vzdialená kópia s lokálnou cezsvn update.doCheck: ak sa zistí, že v lokálnej kópii sú necommitnuté zmeny, zostavovanie projektu zlyhá.
Obe hodnoty sú štandardne vypnuté, ale môžeme ich zapnúť cez:
<configuration>
<doCheck>true</doCheck>
<doUpdate>true</doUpdate>
</configuration>