Sve što se radi u Mavenu je orginalno namjenjeno da se radi iz command prompta i može se raditi, ali si obzirom da se velika većina (uzeti za zadrškom) java web alplikacija radi pomoću Eclipsea rodila se potreba za eclipse pluginom za maven.
Help -> Install New Software i dodajte ovaj url: http://download.eclipse.org/technology/m2e/releases i odaberite m2e - Inetgration for Eclipse te next, agree i finish. Nakon svega toga još samo jedan restart eclipse i to je to!

Sada prelazimo na praktični dio (ujedinio i onaj zabavniji). Ništa se spektakularno nije dogodilo, na prvi pogled. Ali ako idemo napraviti novi projekt može se primjeti da imao novu opciju Maven i nekoliko odabira. Za ovaj slučaj odaberite Maven Project, kao što je prikazano na slici i Next:
Na prvom prozoru se može sve slobodno ostaviti defaultno i next jer sljedeći prozor je bitan. Možemo odabrati filter jer Maven nudi hrpu, ali doslovno hrpu templatea. Avanturisti slobodno pregledajte šta se sve nudi. Ali ako ćemo raditi web aplikaciju u filter upišite webapp i odaberiti mavenov archetype. Archetype je nešto najsličnije templateu ali maven to zove archetype.
Ima i drugih webapp archetypova i prema potreba aplikacije slobodno odaberite onaj koji vam treba ali ja ću odabrati mavenov web app, te zatim Next. To nas dovodi do jako važnog prozora:
Potrebno je popuniti nekoliko opcija. Group Id je id po kojemu ćemo raspoznavati naš projekt, može biti ime paketa ili neko smisleno ime. Artifact Id je ime projekta koje će se prikazivati u Project Exploreru. Verzija sama objašnjava, ali treba imati na umu da maven će stvoriti naš war file, ali u sljedećem obliku: ArtifactId + Verzija, znači u mom slučaju DemoWebApp-0.0.1-SNAPSHOT
I zadnje ime baznog paketa, zatim nam još jedino preostaje Finish.
Maven je za nas stvorio projekt s rasporedom svih potrebnih fileova za web aplikaciju. Plus bio je toliko dobar da nam generira i web.xml te jedan Hello World jsp. Kako divno od njega!
Jedino što razlikuje maven projekt na prvi pogled od običnog web projekta stvorenoga u eclipsu je malo plavo slovo m iznad imena projekta i nešto potpuno novo ako se niste sreli do tada sa mavenom, a to je pom.xml
Ako otvorimo pom.xml vidjet ćemo naše opcije i ako bolje pogledamo tag: <packaging>war</packaging>
Znači kada pokrenemo build dobit ćemo war, u slučaju da radimo Java SE aplikaciju umjesto war tu bi stajalo jar.
Još jedan je novi tag ali i pojam -> Dependencies
Unutar toga stavljamo sve naše zavisnosti koju su nam potrebni za našu aplikaciju. Zavisnosti nisu ništa drugo nego jar-ovi koju su nam potrebni za izradu aplikacije. Npr. JDBC jar, spring, junit....
Zavisno što nam treba to unosimo, a to se može napraviti na nekoliko načina. Nakon otvorenog pom filea možemo vidjeti na dnu dokumenta nekoliko tabova. Pa ako kliknemo na tab Dependencies možemo dodati novu zavisnost pomoću Add. Drugi način je ako odaberemo pod tabovima pom.xml tako da možemo uređivati xml ili ako kliknemo desnom tipkom na project pa pod Maven odaberemo Add Dependecy.
Naravno nitko ne očekuje da netko zna napamet sve zavisnosti i kako ih točno napisati. Zato postoje čak i posebne web stranice. Brza pretraga googlom za Maven Repository Search će nam dati brdu rezultat, ja koristim http://mvnrepository.com
Pomoću searcha nađite šta vam treba, u mom slučaju PostgreSQL te odaberite verziju koja vam treba, u mom slučaju verzija 9. Može se uočiti da se vidi dali je verzija beta, release... Odaberite jednu i vidite sljedeće:
Jednostavno prekopirajte xml na stranici u pom.xml unutardependencies tagova i to je to. Možete početi koristiti ih koristiti u svojim programima.
Važna činjenica je da Maven zahtjeva stalno vezu s internetom. Može se koristiti i off-line verzija ali moramo imati zavisnosti skinute u naš lokalni repozitorij. Ako koristimo off-line verziju samo uz svaku opciju dodamo -o. Npr. install -o
Ono što se dogodi kada pokrenemo build, Maven skine sve zavisnosti u naš lokalni repozitorij (ako se zavisnost već ne nalazi tamo), imajte na umu da ako prvi put pokrećete build to bi moglo malo potrajati, što je sasvim normalno.
No dosta priče, potrebno je ovo dovesti k war-u :D
Način na koji se izvršavaju Maven naredbe je da se pod desnim klikom odabere Run As i Maven build... Naglasak tri točkice nisu moja kreativna sloboda, nego ono na što trebate kliknuti. Jer nam to daje mogućnost da utipkamo naredbu koja nam je potrebna.
Pod Goal utipkamo naredbu koju trebamo. Ovdje sada koristimo install (više o mogućim naredbama u mom prvom postu). Ako to radimo iz command promta onda bi utipkali mvn install, ali pošto to radimo u Eclipsu mvn prefix je nepotreban. Još nam samo preostaje klinuti na Run i obratite pozornost na Console tab u Eclipsu. Ono što tražimo je sljedeće:
S tim da nam mora pisati BUILD SUCCESS. I pogledajte cijeli zapis u konzoli i vidjet ćete da se odradi i svi buildovi prije installa. Još jedna važna stvar je gdje možemo naći naš novi novostali war file, a to nam piše neposredno BUILD SUCCESS. Ali uglavnom naš novi projekt će se promjeniti utoliko što će Maven stvoriti novi file pod imenom Targer u kojem će staviti novonastali war file.
Jedino što nam preostaje je naš war file staviti u webapps folder u Tomcat serveru (ili koji već server koristite) ili ako koriste npr. Jetty, onda postoji jedna zanimljiva naredba za vas. Umjesto da napište install možete dodati Jetty zavisnosti (potražite koje su to točno) u pom.xml i kod Run As -> Maven build... napišite Jetty run
Možete i koristiti deploy naredbu u kombinaciji s putanjom gdje želiti smjestiti vaš war file pa ne morate ručno uploadti war u Tomcat.
Ako želite koristiti Maven obavezno pročitajte knjigu Apache Maven 3 Cookbook. Vrlo dobro objašnjeno i napisano. Knjiga ima samo jedan tipfeler, a taj se nalazi na str.98 na ispisu xml-a koji se nalazi How it works. Ispod <plugin> taga vam fali tag: <groupid>org.apache.maven.plugins</groupid>
Mala sitnica ali bi vas mogla koštati nervoze, pošto je to poglavlje gdje kreće iz početka napraviti web aplikaciju i odmah na početku je nećete moći pokrenuti. Zadalo mi je malo problema do to nisam uočuio.
Još jedan dobar resurs za Maven a i ostale stvari za Javu je YouTube. Naročito Koushik (http://javabrains.koushik.org) odite nahttp://javabrains.koushik.org/p/maven.html i pogledajte njegove video tutorijale. Jako dobro objašnjava stvari, s tim da više radi u terminalu, a ne u Eclipsu. Ali kada ih pogledate, prelazak na Eclipse je mačji kašalj.
Toliko od mene za ovaj post