Číslo SVN revízie v názve JARu v Mavene?

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 cez svn 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>

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *