Maven ja Subversion

Maven on nykytyökaluistani suosikkini; Lähes joka päivä löytyy uusia työtä helpottavia ja nopeuttavia piirteitä. Nyt on tutkinnan alla Mavenin SCM plugin. Se on ollut teoriatasolla tuttu mutta ei ole ollut syytä käytellä sitä aiemmin. Päätin ottaa härkää sarvista ja pistää sen toimintaan nykyprojekteille.

SCM on plugin joka hoitaa kytkökset Software Configuration Management järjestelmiin kuten CVS, Subversion, Mercurial, Perforce,  jne. Aiemmin tapasin hoitaa lähdekoodin hallinnan ohi Mavenin, esim. IDE:n omilla keinoin. Tämä on täysin mahdollinen vaihtoehto, mutta kun halutaan alkaa hallinnoimaan ohjelmistopaketin versioita Mavenin piirteitä hyödyntäen, SCM plugin on syytä asentaa.

Käytännössä SCM plugin käyttöönotto tapahtuu lisäämällä Mavenin pom.xml:ään sopivaan kohtaan seuraava pätkä:

<scm>
  <connection>scm:svn:svn://10.0.32.1/projects/arto/trunk</connection>
  <developerConnection>scm:svn:svn://10.0.32.1/projects/arto/trunk</developerConnection>
</scm>

Mitä tämä tarkoittaa? Aloitetaanpa sisällöistä. Maven käyttää scm urleissa muotoa:

scm:<scm_provider><delimiter><provider_specific_part>

Eli yllä olevassa esimerkissä scm: aloittaa url osoitteen, sitten tulee svn kertomaan että käytetään Subversion pluginia, sitten tulee delimiter osa, eli : – ja sen jälkeen svn url osoite sisältäen svn protokollan, palvelimen, haaran lähdekoodihallinnassa, sekä jos halutaan, autentikointitiedot.

Maven käyttää erikseen määritystä connection, ja developerConnection. Ensimmäinen on tarkoitettu lukuoperaatioihin, toinen päivityksiin ja lisäyksiin.

Autentikointi pitää tietysti määritellä johonkin. Vaihtoehtona on määritellä se url osoitteisiin, antaa komentoriviltä, tai määritellä se pom.xml plugin määrityksiin.

Komentoriviltä annettaessa käytetään kytkintä -D, esim:

mvn scm:checkout -Dusername=arto -Dpassword=arto

Vaihtoehtoisesti voit konfiguroida autentikointitiedot pom.xml tiedostoon, näin:

<project>
...
<build>
...
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>1.3</version>
<configuration>
<username>username</username>
<password>password</password>
</configuration>
</plugin>
</plugins>
...
</build>
...
</project>

Huom! Samalla tulet lukinneeksi Maven SCM plugin version, mikä voi olla hyvä tai huono juttu..

Kun scm plugin on näin määritelty käyttöön eli projekti tietää mihin svn repositoryyn ja mihin haaraan se kuuluu liittää, saat käyttöösi komentoriviltä uusia komentoja:

  • scm:add – command to add file
  • scm:bootstrap – command to checkout and build a project
  • scm:changelog – command to show the source code revisions
  • scm:checkin – command for commiting changes
  • scm:checkout – command for getting the source code
  • scm:diff – command for showing the difference of the working copy with the remote one
  • scm:edit – command for starting edit on the working copy
  • scm:status – command for showing the scm status of the working copy
  • scm:tag – command for tagging a certain revision
  • scm:unedit – command to stop editing the working copy
  • scm:update – command for updating the working copy with the latest changes
  • scm:validate – validates the scm information in the pom
  • tässä esimerkki:

    mvn -DstartDate=YYYY-MM-DD -DendDate=YYYY-MM-DD scm:changelog (muutokset aikavälillä)

    Ensi kerralla paneudutaan sitten Mavenin release-pluginin toimintaan.

    Mainokset

    Vastaa

    Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

    WordPress.com-logo

    Olet kommentoimassa WordPress.com -tilin nimissä. Log Out / Muuta )

    Twitter-kuva

    Olet kommentoimassa Twitter -tilin nimissä. Log Out / Muuta )

    Facebook-kuva

    Olet kommentoimassa Facebook -tilin nimissä. Log Out / Muuta )

    Google+ photo

    Olet kommentoimassa Google+ -tilin nimissä. Log Out / Muuta )

    Muodostetaan yhteyttä palveluun %s