Table of Contents

Αυτόματη μεταγλώττιση με χρήση Apache Ant

Η συγκεκριμένη ενότητα είναι προαιρετική και μπορείτε να την παραλήψετε κατά την ανάγνωση της θεωρείας του μαθήματος.

Το Apache Ant είναι ένα εργαλείο δημιουργίας διεργασιών αλληλεξαρτούμενων μεταξύ τους με στόχο την μεταγλώττιση σύνθετων προγραμμάτων. Η λογική λειτουργίας του είναι αντίστοιχη του GΝU Make και άλλων ανάλογων προγραμμάτων, περιέχει όμως χαρακτηριστικά που διευκολύνουν την διαδικασία μεταγλώττισης αρχείων JAVA.

Βασικά χαρακτηριστικά του Apache Ant είναι ότι εξής:

  1. Τα configuration/build αρχεία έχουν format XML.
  2. Το configuration αρχείο έχει όνομα build.xml.
  3. Κάθε αρχείο περιέχει έναν η περισσότερους στόχους. Οι στόχοι είναι αλληλεξαρτούμενοι δηλαδή αν έχετε τους στόχους Α, B, C, D μπορείτε να δημιουργήσετε σχέσεις εξάρτησης μεταξύ τους ως παρακάτω (το παράδειγμα είναι ενδεικτικό):
    1. B [depends →] A
    2. C [depends →] A
    3. D [depends →] B,C

To παραπάνω θα μπορούσε να αποτυπωθεί στον παρακάτω κώδικα

<target name="A"/>
<target name="B" depends="A"/>
<target name="C" depends="B"/>
<target name="D" depends="B,C"/>

Κάθε στόχος (target) συνήθως είναι μία από τις παρακάτω ενέργειες:

Διάρθρωση καταλόγων αρχείων *.java και εκτελέσιμων αρχείων *.class

Όπως ήδη αναφέρθηκε, μια καλή πρακτική ανάπτυξης κώδικα JAVA είναι να διαχωρίζουμε τα αρχεία πηγαίου κώδικα *.java σε σχέση με τα μεταγλωττισμένα αρχεία *.class. Για τον σκοπό αυτό σε κάθε project, δημιουργούμε δύο φακέλους, src που περιέχει αρχεία πηγαίου κώδικα και build που περιέχει μεταγλωττισμένα αρχεία. Ο κατάλογος build μπορεί να διακριθεί στους υποκαταλόγους build/classes (περιέχει τα αρχεία *.class) και build/jar (περιέχει τα αρχεία JAR, εφόσον υπάρχουν). Συνολικά η προτεινόμενη δομή καταλόγων είναι η εξής:

Παράδειγμα Ant Script

Με βάση την παραπάνω δομή ένα αρκετά αντιπροσωπευτικό παράδειγμα ant script είναι το παρακάτω:

build.xml
<project>
 
    <target name="clean">
        <delete dir="build"/>
        <mkdir dir="build/jar"/>
        <mkdir dir="build/classes"/>
    </target>
 
    <target name="build">
        <javac srcdir="src" sourcepath="src" destdir="build/classes">
            <!--compilerarg value="-Xlint"/-->
        </javac>
    </target>
 
    <target name="jar" depends="build">
        <jar destfile="build/jar/ce325library.jar" basedir="build/classes" 
             includes="ce325/**" excludes="ce210/temp/**">
        </jar>
    </target>
 
</project>

Για το παραπάνω script διακρίνουμε τα εξής targets:

Προκειμένου να χρησιμοποιήσετε το παραπάνω script μπορείτε να γράψετε:

ant clean; //clean everything
ant jar;   //compile and create jar file

Εγκατάσταση Apache Ant

Η εγκατάσταση NetBeans εγκαθιστά και τα απαραίτητα εργαλεία μεταγλώττισης. Εάν χρησιμοείτε NetBeans δεν απαιτείται η επιπλέον εγκατάσταση Ant.

Linux

Εγκατάσταση του πακέτου ant από τον package manager (για εκδόσεις ubuntu/kubuntu ή suse).

Windows

Εγκατάσταση της εφαρμογής winant.