[Java] waarom ANT gebruiken?

Pagina: 1
Acties:
  • 132 views sinds 30-01-2008
  • Reageer

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Ik zie dat bij veel ide`s support is voor ANT. ANT is een build tool die mbv XML te configureren valt. Maar ik kan op de site: http://jakarta.apache.org/ant/ niet echt veel info vinden. Er staat dat het een build tool, maar wat voegt dit toe aan het build gedeelte van een beetje serieuze ide? De meeste ide`s die kijken of de class file een oudere waarde heeft dan de java file en dan stuurt die hem mee aan de compiler. ANT moet wel meer toevoegen dan dat lijkt me.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
<jubel-mode>
Ant is fantastisch!
</jubel-mode>

In principe kan je je vraag opsplitsen in 2 delen:

1. Waarom build tools gebruiken?
2. Waarom Ant gebruiken als build tool?

Eerst maar vraag 1:
Goede build tools hebben veel te bieden.

1. Makkelijk gehele projecten kunt compileren. Uiteraard alleen datgene wat nodig is. In principe biedt een goede IDE dit natuurlijk ook.

2. Build tools bieden vaak verschillende doelen. Zo kan je bijvoorbeeld compileren, een distributie maken, verschillende typen distributies maken of zelfs een tool installeren met een build tool. Goede IDEs kunnen dit voor een deel ook leveren, maar ik ben er nog geeneen tegen gekomen die zo veel functionaliteit biedt als build-tools. Zeker als je vaak (en dus snel) distributies wilt maken (en dat wil je) is een build tool een uitkomst. In de build-files kan je direct opgeven hoe een distributie opgebouwd moet worden. Dat werk moet je zelfs met een ide nog vaak met de hand doen. Ook kan je bijvoorbeeld werken met verschillende versies van distributies, iets wat een IDE vaak ook niet biedt.

3. Build tools zijn niet IDE afhankelijk.

(2) Waarom Ant?

1. Ant heeft een zeer aantrekkelijk xml-syntax voor de build files. Dit in tegenstelling tot het bekende, uitermate obscure make.

2. Ant build-files zijn in principe platform onafhankelijk: een build-file werkt op zowel MS Windows als Linux. Pas ben ik overgestapt en vrijwel alle build-files werkten nog perfect.

3. Ant heeft zeer veel tasks en je kan nieuwe tasks inpluggen. Je kunt het zo gek niet bedenken of het is wel (platform-onafhankelijk!) mogelijk.

4. Ant heeft build-in support voor het toepassen van unit-testing met JUnit
In principe kan een IDE ook een hoop bieden, maar ik heb er nog geeneen gevonden die zoveel functionaliteit biedt als Ant. Ik werk zelf werkelijk voor alles met Ant en ik kan nu met 1 commando compileren, testen, distributies maken van mijn applicaties in verschillende vormen!

Ik weet zeker dat mijn plezier in het werken en mijn productiviteit enorm gestegen zijn sinds ik Ant gebruik. Ik kan het iedereen zeer sterk aanbevelen :) . Het kost even wat tijd om je erin te verdiepen, Ant te installeren en een build-file te maken, maar als je het eenmaal door hebt. Wil je nooit meer anders :) .

Hum, dit lijkt wel erg veel op een reklame, maar zoals je merkt ben ik er echt erg enthousiast over ;) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Trouwens, ik gebruik sinds een tijdje het prototype van de Java Generics compiler. Ant is heel makkelijk zo te configureren dat deze compiler gebruikt wordt. Vanuit een IDE zal dit erg lastig worden.

Ik heb trouwens nog een aardige build file liggen die ik vrijwel voor alles gebruikt. Het doet het volgende:

Ik neem altijd de volgende directory structuur:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
\
 distr
    version_0.1
    version_0.2
    ...
 lastbuild
     classes
     jarcontent
     lib
 src
     Manifest.mf
     java
     jarcontent
     bin
     lib

In src staat uiteraard de source van het project: java bevat alle Java klassen, jarContent bevat alles wat in de jar moet en src/bin bevat eventueel nog wat opstart scripts. src/lib bevat de libraries die nodig zijn.

De build file bestaat uit een aantal stappen:

1. compileer alle Java stuff naar lastbuild/classes
2. kopieer lastbuild/classes en src/jarcontent naar lastbuild/jarcontent
3. Maak hier een jar van in lastbuild/lib
4. Maak een volledige distributie met libs, de jar en eventueel nog andere stuff in de distr directory, met daarbij als directory naam een opgegeven versie. Ook wordt hierbij de huidige source gevoegd.

Zo heb ik dus een prettige manier om projectjes op te zetten en snel verschillende distributies te kunnen maken. Ook kan je terugvallen op oude distributies en source. Uiteraard kan je zelf per specifieke applicatie nog allerlei stuff toevoegen.

Als je hem wilt hebben/zien moet je het meer ff zeggen.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Overigens hoe je Ant niet speciaal voor Java te gebruiken. In principe kan je het voor elke willekeurige omgeving gebruiken. Er loopt bijvoorbeeld een project om tasks voor .NET te maken. Je kan Ant dus ook al gebruiken als build tool voor .NET projecten.

Ook kan je zelf vrij gemakkelijk zelf nieuwe tasks toevoegen. Ik ben de laatste tijd vrij veel bezig met de =url=http://www.program-transformation.org/twiki/bin/view/Tools/XT]XT program-transformation tools[/url]. Helaas werken die nog met de bekende make files. Ik denk dat ik binnenkort Ant tasks ga schrijven, zodat ik ook hierbij Ant kan gebruiken voor compileren, distributie en installatie.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Scorpion
  • Registratie: April 2000
  • Laatst online: 18-01-2024

Scorpion

not to lame to read BitchX.doc

Hmmm nice, ik wou me er vandaag net in gaan verdiepen. Ik gebruikte tot op heden allemaal batch files om mijn files te compileren, jarfiles te maken, obfuscaten waar nodig, en dan renamen/moven. hoogst irritant soms :)

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
bedankt voor de duidelijke info :) ik ga het eens proberen.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Ant zit trouwens ook in Sun's Forte geintegreerd.
En versie 3 daarvan is best leuk :)

  • MisterData
  • Registratie: September 2001
  • Laatst online: 07-09 20:23
Ant is idd fantastisch, sinds een maand gebruik ik het en het is makkelijker dan al die commando's zelf iedere keer tikken. Ook zorgt het voor structuur , en normaal als ik zelf al die compiler commands ga intikken wordt het een zootje :P Erg handig vind ik de <style> functie, kun je in een keer documentatie genereren vanuit XML en XSLT naar HTML. petje af voor Apache :9~

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Ik heb er net even naar gekeken, de documentatie laat soms een beetje te wensen over, maar heb nu al jars gemaakt van mijn project en het is een eitje. Petje af voor ANT.
Pagina: 1