2013-02-01
Varför är Gradle så bra?
På bilden: Jens Riboe
I begynnelsen var det make.
Dvs i Javas barndom (a.k.a. 90-talet) fanns bara Unix/Linux make för
att bygga/sammanfoga programsystem. Detta var ju ett problem för ett
plattforms-oberoende språk som Java.
Apache AntKring millennieskiftet och när XML var som hetast, kom så
Ant.
Via en konfigurationsfil i XML kunde man beskriva en stor mängd
byggtekniska steg. Allt från att kompilera ett gäng Java klasser, peta
in dem i en JAR fil, stoppa in denna plus mycket annat webbrelaterat i
en WAR fil, hämta eller lämna data i en SQL databas, koka kaffe -
äh, nä kanske inte just det, men mycket annat.
Ant tog Java världen med storm. Ant växte sig större och större, och en dag var Ant jättestor. Medan de andra ..., nä stopp - tillbaka i spåret.
Det som vi alla noterade med varierande grad av frustration, var att
varje gång man kom till ett nytt projekt så behövde man läsa in sig på
bygg dokumentationen.
Hur gjorde man nu för att bygga systemet? Var det ant build, ant make, ant package, ant assembly, ant doit, ant fixit, eller bara kort och gott ant?
Och, hur körde man de där unit testen? Och var ska man lägga alla
3-parts JAR filer? Och hur ska dessa packas upp med rätt namn-standard?
Åh, föresten; var i hela friden ska jag lägga mina Java klasser? Alla
som var med, minns detta.
Apache MavenSå kom
Maven i 2004 och gjorde
rent hus med Ant. Maven innebar en smärre revolution i vår del av den
programmerar-tekniska världen, genom att införa (1) standardisering och
(2) konfigurering via konventioner, samt störst av dem alla, (3)
automagisk hantering av 3-parts JAR filer.
Dessutom avslutade Maven debatten huruvida man har tid med dokumentation eller ej. Alla kunde nu köra kommandot mvn site
och få den mest tjusiga webbplats med JavaDocs för alla klasser,
unit-test rapporter, källkods-listningar, listning av alla 3-parts
beroenden, instruktioner om hur och var man checkade ut koden och mycket
annat.
Standardisering och konfigurering
Förvånansvärt snabbt lärde vi oss alla att placera Java klasser under src/main/java och test-klasser under src/test/java och resurs-filer under src/main/resources. Samt, ville man kompilera skrev man mvn compile, att bygga hela systemet var lika enkelt med mvn package och då kördes dessutom alla unit-test som en extra bonus.
Läs hela inlägget med kodexempel av Jens Riboe här
Information om företaget: Wetteri Sweden AB
Nyheten presenteras i samarbete med MyNewsdesk