Citat:
leka: Iz mog subjektivnog ugla: lakse mi je editovati citljivi Makefile nego editovati XML djubre koje je btw. u 99% slucajeva automatski generisano.
Osnovna ideja mavena je bila da se izbace velike, komplikovane i necitljive skripte i xmlovi.
pom.xml je standardan, uvek iste strukture, lako citljiv i razumljiv, i uglavnom mali.
Nema tu bogzna kakvog trazenja greske: tvoj plugin ili radi, ili ne radi, i to je to.
Mi smo imali slucajeve da nije postojao odgovarajuci plugin, i embedovali smo ant taskove, sto nije posebno komplikovano.
Editovanje xml-a se uglavnom svodi na dodavanje/menjanje dependencija, i eventualno dodavanje novih pluginova ako hoces da podesis neku stvar specificnu za tvoj projekat.
Mi smo imali identicne probleme sa continuos buildovima.
Maven interno koristi vise repozitorijuma za prikupljanje resursa, a nekad treba dofinisati i dodatne. Desava se da neki od njih nisu dostupni u vreme builda.
Dalje, ako se ne fiksira verzija pluginova, maven ce sam koristiti najnovije, koji opet sami po sebi nisu dovoljno stabilni, pa se desava da se sa potpuno dobre verzije koja se koristila prebaci na novu kojoj ili fale neke stvari, ili ne jednostavno ne radi kako treba.
Dalje, meni i dalje nije poznat ceo algoritam po kom maven odlucuje koju verziju kog internog jara koristi, i odakle je trazi, ali se ta informacija definitivno razlikuje u zavisnosti od toga koji repozitorijumi su mu dostupni, i meta podataka na njima, tako da se opet ponekad desavalo da zbog izmene verzija odjednom na pogresnom repozitorijumu trazi pogresan jar i ne moze da ga nadje.
Zavrzlama neopisiva...
Sve su ovo bili privremeni problemi, i nadam se decije bolesti koje su mozda vec i resene, ali su za nas bili jako neugodni, i ludeli smo.
Da bi se to resilo, prvo smo fiksirali sve verzije pluginova koje koristimo, da bi se resio "maven uncertainty principle". Ovo je prakticno eliminisalo probleme.
Ipak, da bi bili potpuno sigurni, poceli smo u interni repozitorijum (koji smo vec imali zbog licenciranih stvari koje koristimo) da kopiramo i "eksterne" stvari, i da koristimo samo njega, tj. overrajdovali smo "central" sa nasim.
Ako zatreba nesto novo, promenimo profil i dovucemo nove stvari. Ako sve prodje ok, instaliramo u nas repozitorijum, i zatim se vratimo na profil koji koristi samo nas interni repo.
Ovaj sistem radi savrseno vec nekoliko meseci.
Ne iskljucujem da je ovaj "buildr", ili nesto drugo alat buducnosti, ali posto ja sa mavenom nemam probleme koje je on opisao, nije me bas ubedio za pocetak.
If people were meant to pop out of beds we would all sleep in toasters.
Google is your friend
http://justfuckinggoogleit.com/