Maven – Rakkautta Ensi Silmäyksellä

Törmäsin taannoin uuteen Java akronyymiin mikä ei vielä vuosi sitten sanonut itselleni juuri mitään. Maven on Java-ohjelmistoille tarkoitettu työkalu, joka pystyy auttamaan ohjelmistoprojektin hallinnassa.

http://maven.apache.org/

Maven osaa mm.

  • perustaa projektirungon vakiokansiorakenteella (Maven Archetypes)
  • hallinnoida sen riippuvuuksia, esim. mitä framework/lisäkirjastoja/ajureita otetaan ja mitä versioita
  • automatisoida yksikkötestien ajon esim. TDD käyttöön
  • ladata, asentaa ja ajaa testipalvelimen web-moduulien testaamiseen tarvittaessa

Mikä kaikkein mukavinta, Maven:llä luodut projektit voi avata suoraan Netbeansissä, tai importoida Eclipseen. Toisaalta niitä voi kääntää, paketoida, testata, ja asentaa myös suoraan komentorivikomennoin.

Mavenin avulla siis ohjelmistoprojektissa:

  • Kansiorakenne yhdenmukaistuu ja IDE valinta menettää merkityksensä – keskitytään olennaiseen
  • Yksikkötestaukseen on apua ja jopa rohkaisua
  • Buildit voidaan tehdä mistä vaan, milloin vain
  • Omien moduulien versiointia ja versioriippuvuuksia voi hallita samalla tavoin
  • Mikä kaikkein tärkeintä, riippuvuuksien hallintaongelmat eli javan .jar helvetti poistuvat kokonaan, voit helposti muuttaa projektin kirjastoriippuvuuksia ja palauttaa ne takaisin jos uusi ajuri tai framework versio ei testausta läpäisekään.

Kun on kerran kokeillut Maveniä on vaikea vaihtaa takaisin muuhun. Ja Maven + Netbeans on aivan killeri yhdistelmä.

Tällä hetkellä koneeltani löytyy komentoscriptejä jotka auttavat perustamaan maven standalone/web projektirunkoja, esim:


mvn archetype:generate
-B
-DarchetypeGroupId=org.apache.maven.archetypes
-DarchetypeArtifactId=maven-archetype-quickstart
-DgroupId=org.mycompany.facebookclient
-DartifactId=facebookClient


mvn archetype:generate
-B
-DarchetypeGroupId=org.apache.maven.archetypes
-DarchetypeArtifactId=maven-archetype-webapp
-DgroupId=org.mycompany.services
-DartifactId=services

Kun olet perustanut Maven projektin, voit helposti esim. kääntää, testata ja paketoida sen komennolla:

mvn package

mvn package

mvn package

Onko sinulla kokemuksia Mavenistä tai kysymyksiä? Kommentoi!

mvn archetype:create -DarchetypeGroupId=org.apache.maven.archetypes  -DarchetypeArtifactId=maven-archetype-webapp  -DgroupId=fi.tieturi.services  -DartifactId=services
Advertisements

2 thoughts on “Maven – Rakkautta Ensi Silmäyksellä

  1. Maven on kyllä ihan näppärä, mutta sen sisäistäminen vaatii kyllä paljon vaivaa. Olen projektissa testaajana, ja sen verran jouduin pulttaan Mavenin skriptejä, että saan yöllä Hudsonin buildaan softan, deployaan sen (ei normaalilla J2EE-tavalla vaan isolla säädöllä) ja ajaan testiautomaation, jota ei oltu tehty Javalla. Onneksi sain testiautomaation säädettyä JUnitin kanssa ja Surefiren tekeen kunnolliset tiivistelmät ajosta.

    Parasta Mavenissa on toiminta Hudsonin kanssa ja ymmärtämisen jälkeen sen meko yksinkertainen buildi’skripti’. Se helpottaa aika paljon jatkuvaa integrointia ja automaattista testaamista.

  2. Jep, sovelluskehityksenkin vinkkelistä välillä menee tuskastuttavan paljon aikaa Maven jar riippuvuuksia jahdatessa kun kaikkea ei löydy keskusrepositoryistä ja kaikki sieltä löytyvä ei ole käyttökelpoista. Mutta silti en vaihtaisi pois, kun ei ole parempaakaan tarjolla.

    ANT on myös näppärä työkalu koska se on vähän Maveniä karkeampi ja sen saa taivutettua nopeammin eksoottisempiin tarpeisiin. Oikeanlainen automatisointi tekee asioista ihmeellisen helppoa – hmm toimiessaan 😉

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