java:ant

This is an old revision of the document!


A PCRE internal error occured. This might be caused by a faulty plugin

====== Αυτόματη μεταγλώττιση με χρήση Apache Ant ====== Το [[http://ant.apache.org/|Apache Ant]] είναι ένα εργαλείο δημιουργίας διεργασιών αλληλεξαρτούμενων μεταξύ τους με στόχο την μεταγλώττιση σύνθετων προγραμμάτων. Η λογική λειτουργίας του είναι αντίστοιχη του [[https://www.gnu.org/software/make/|GΝU Make]] και άλλων ανάλογων προγραμμάτων, περιέχει όμως χαρακτηριστικά που διευκολύνουν την διαδικασία μεταγλώττισης αρχείων JAVA. Βασικά χαρακτηριστικά του [[http://ant.apache.org/|Apache Ant]] είναι ότι εξής: - Τα configuration/build αρχεία έχουν format [[http://www.w3schools.com/xml|XML]]. - Το configuration αρχείο έχει όνομα **build.xml**. - Κάθε αρχείο περιέχει έναν η περισσότερους στόχους. Οι στόχοι είναι αλληλεξαρτούμενοι δηλαδή αν έχετε τους στόχους **Α**, **B**, **C**, **D** μπορείτε να δημιουργήσετε σχέσεις εξάρτησης μεταξύ τους ως παρακάτω (το παράδειγμα είναι ενδεικτικό): - **B** [depends ->] **A** - **C** [depends ->] **A** - **D** [depends ->] **B,C** To παραπάνω θα μπορούσε να αποτυπωθεί στον παρακάτω κώδικα <code xml> <target name="A"/> <target name="B" depends="A"/> <target name="C" depends="B"/> <target name="D" depends="B,C"/> </code> Κάθε στόχος (//target//) συνήθως είναι μία από τις παρακάτω ενέργειες: * διαγραφή/καθαρισμός μεταγλωττισμένων αρχείων και καταλόγων. * δημιουργία αρχείων/καταλόγων. * μεταγλώττιση ενός ή περισσότερων αρχείων. * δημιουργία **jar** αρχείου. ===== Διάρθρωση καταλόγων αρχείων *.java και εκτελέσιμων αρχείων *.class ===== Όπως ήδη αναφέρθηκε, μια καλή πρακτική ανάπτυξης κώδικα JAVA είναι να διαχωρίζουμε τα αρχεία πηγαίου κώδικα ***.java** σε σχέση με τα μεταγλωττισμένα αρχεία ***.class**. Για τον σκοπό αυτό σε κάθε project, δημιουργούμε δύο φακέλους, **src** που περιέχει αρχεία πηγαίου κώδικα και **build** που περιέχει μεταγλωττισμένα αρχεία. Ο κατάλογος **build** μπορεί να διακριθεί στους υποκαταλόγους **build/classes** (περιέχει τα αρχεία ***.class**) και **build/jar** (περιέχει τα αρχεία JAR, εφόσον υπάρχουν). Συνολικά η προτεινόμενη δομή καταλόγων είναι η εξής: * **src** --> πηγαίoς κώδικας * **build/classes** --> αρχεία *.class * **build/jar** --> αρχεία *.jar ===== Παράδειγμα Ant Script ===== Με βάση την παραπάνω δομή ένα αρκετά αντιπροσωπευτικό παράδειγμα ant script είναι το παρακάτω: <code xml 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> </code> Για το παραπάνω //script// διακρίνουμε τα εξής //targets//: * **clean:** διαγράφει τον κατάλογο **build** μαζί με σύνολο των περιεχομένων του. Στη συνέχεια δημιουργεί την ιεραρχία καταλόγων **build/classes** και **build/jar**. * **build:** μεταγλωττίζει τα αρχεία ***.java** * **jar:** δημιουργεί αρχείο ce210library.jar προσθέτοντας όλα τα αρχεία που βρίσκονται στον κατάλογο **build/classes/ce210/**, αλλά όχι στον κατάλογο **build/classes/ce210/temp**. Προκειμένου να χρησιμοποιήσετε το παραπάνω script μπορείτε να γράψετε: <code> ant clean; //clean everything ant jar; //compile and create jar file </code> ===== Εγκατάσταση Apache Ant ===== ==== Linux ==== Εγκατάσταση του πακέτου **ant** από τον package manager (για εκδόσεις ubuntu/kubuntu ή suse). ==== Windows ==== Εγκατάσταση της εφαρμογής [[https://code.google.com/p/winant/|winant]]. |Προηγούμενο: [[ :java:classpath | Η μεταβλητή περιβάλλοντος CLASSPATH ]] | [[ :toc | Περιεχόμενα ]] | Επόμενο: [[ :java:interfaces | Διεπαφές (Interfaces) ]] |

java/ant.1456323665.txt.gz · Last modified: 2016/02/26 11:15 (external edit)