View source
From RCUB
for
Maven
Jump to:
navigation
,
search
Pored ociglednog (http://maven.apache.org/), ovo su neki linkovi koji bi mogli da budu korisni u mavenizaciji projekata: http://maven.apache.org/background/philosophy-of-maven.html Ovo i nije neophodno, tri pasusa o sustini Maven-a, kako je nastao i sta propagira, sazeta poenta: Apache je kroz rad na svojim projektima usavrsio poslovni proces i na osnovu toga formirao Maven, koji bi trebalo da namece i olaksava sprovodjenje najboljih i najprirodnijih postupaka u radu na projektu (best practices). http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html http://maven.apache.org/settings.html Bitan momenat u settings fajlu - ukazivanje na lokalni repozitorijum... http://maven.apache.org/pom.html Obratiti paznju na pakovanje (war/jar, verzija), navodjenje autora (ako je potrebno), setovanje repozitorijuma (vazan kada se planira koriscenje maven-a za objavljivanje release-ova), navodjenje zadataka (task tag), ciljeva (goal tag), plugin-ova (http://maven.apache.org/plugins/index.html), zavisnosti (dependencies)... http://maven.apache.org/guides/getting-started/index.html Detaljno opisano koriscenje maven-a, mada ima bas dosta teksta, mozda je manje stresna varijanta za pocetak ovo: http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html Sto se tice mavenizacije postojeceg Eclipse projekta, postoji preporuka da se to radi ovako: http://i-proving.ca/space/Technologies/Maven/Maven+Recipes/How+to+Mavenize+an+Existing+Eclipse+Project Pre pocetka mavenizacije projekta potrebno je instalirati Maven (prosto raspakivanje arhive i setovanje M2_HOME i PATH promenljive okruzenja), kao i m2eclipse dodatak za eclipse. U gore navedenom linku se predlaze kreiranje novog maven projekta u eclipse (nakon instalacije m2eclipse plugin-a), a onda importovanje postojeceg eclipse projekta. Ja sam za nase projekte mavenizovala drugacije, tj menjala sam postojeci projekat, po sledecim koracima: # u root-u projekta kreira se pom.xml fajl, i popune neophodni podaci (pakovanje, verzija, itd). Najveci deo posla u tom slucaju je navodjenje zavisnosti. Za jedan projekat potrebno je uociti koje biblioteke (tj. jar fajlove) koristi, i koje njihove verzije i to navesti u okviru dependency elemenata. U tom procesu treba voditi racuna o tome da ce neke biblioteke sa sobom povuci neke druge biblioteke (tranzitivne zavisnosti). Da ne bi doslo do nagomilovanja nepotrebnih jar-ova, moguce je eksplicitno iskljuciti neke biblioteke iz zavisnosti, ako se nista iz njih ne koristi u projektu. Preporucujem da se u toku ove procedure koristi maven komanda mvn dependency:tree iz komandne linije, a za odgovarajuci projekat, koja na osnovu pom.xml-a prikazuje sta sve biva dovuceno, i to u vidu stabla, gde su polazni cvorovi biblioteke navedene u pom.xml-u koji se dalje granaju u sve sto te biblioteke sa sobom vuku. Kada se u okviru tog stabla vidi visak, on se navede u exclusion tagu u okviru zavisnosti u pom.xml-u. Ista prica vazi i za slucaj da se neka biblioteka koristi na projektu ali u specificnoj verziji. Moze da se desi da neka biblioteka sa sobom vuce neodgovarajucu verziju, tada se ona iskljuci a eksplicitno u zavisnostima navede odgovarajuca biblioteka sa zeljenom verzijom. najkorisniji link za ovaj korak - http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html # napravi se struktura foldera koju maven zahteva i klase i ostali resursi rasporede po tim folderima u skladu sa njihovim funkcijama (generalno src folder se deli na main i test celine, koje se obe dele na java, resources i ako je potrebno webapp folder). Po pravilu se u java folderima nalaze iskljucivo java klase, a u resources folderima sve ostalo (XML, XSD, JPG, properties, itd.) Test klase za JUnit idu u src/test/java, da bi se prilikom pakovanja automatski pozvali svi testovi. # cela ova struktura se testira pokretanjem mvn clean compile package iz komandne linije sa ciljem da sve radi, tj. da nas obraduje poruka BUILD SUCCESFUL. # na kraju se nad aktuelnim projektom iskoristi eclipse komanda (dodaje je m2eclipse u kontekstni meni) Enable Dependency Management, i proba clean/build iz eclipse-a.
Return to
Maven
.
Personal tools
Log in
Namespaces
Page
Discussion
Variants
Views
Read
View source
View history
Actions
Search
Navigation
Main page
Community portal
Current events
Recent changes
Random page
Help
Toolbox
What links here
Related changes
Special pages