Mam rozsiahle skusenosti s vyvojom v Jave, Maven pouzivam skoro celu dobu a s Gradlom mam tiez skusenosti.
Na zaciatok by som odporucal pocuvat rady skusenejsich kolegov - ked su za jedno z rieseni, vychadza to z nejakych skusenosti a ked ich nevies presvedcit, teda nemas argumenty, tak by som sa riadil ich radami, kym tie skusenosti nenaberies.
K vyhodam a nevyhodam jednotlivych toolov:
Maven
-------
+ je to standardizovany nastroj, ktory ma velku podporu IDE a ked sa drzis standardu, tak vsetko funguje a nemas problem (bohuzial si casto ludia mylne myslia, ze ich problem je specialny a do standardu sa nevojdu a potom si len hadzu klacky pod nohy a maju problem - osobne som na jednom projekte stretol)
+ standard znamena, ze novi ludia hned vedia, ako projekt zbuildit, pustit testy etc. - nemusia sa ucit ako zbuildit zrovna ten tvoj projekt a pri prechode na iny projekt tieto vedemosti dumpnut do /dev/null
- je to build tool - ak potrebujes cosi navyse, tak to musis vyriesit inac (napr shell skript alebo spominany gradle - da sa kombinovat, nie je to bud/alebo)
- ak mas naozaj specificky problem (nepravdepodobne ale stat sa moze), tak je to neflexibilne riesnie
Gradle
--------
+ kedysi bol marketovany primarne ako automation tool (ktory zvladal buildit) - takze za mna flexibilny skriptovaci nastroj s JVM jazykom a kvantom kniznic, ktore sa daju pouzit
- ako v dobach antu - pises si cely build skript od zaciatku a co projekt, to inac vyzerajuci skript a ludia sa musia ucit pustat nieco uplne ine
- videl som pouzitie v rukach nedostatocne skusenych ludi a po par rokoch sa to moze cele zahodit a napisat znovu, lebo nikto netusi, co ta vec vlastne robi (ked sa niekto snazi, tak aj maven dokaze byt neprehladny, ale gradle moze byt peklo)
Takze u normalnych projektov u mna urcite Maven, pripadne doplnit niecim dalsim pre extra veci.