Both sides previous revisionPrevious revisionNext revision | Previous revision |
java:ant [2016/02/12 13:46] – gthanos | java:ant [2020/02/21 12:38] (current) – gthanos |
---|
====== Αυτόματη μεταγλώττιση με χρήση Apache Ant ====== | ====== Αυτόματη μεταγλώττιση με χρήση Apache Ant ====== |
| |
Το [[http://ant.apache.org/|Apache Ant]] είναι ένα εργαλείο δημιουργίας διεργασιών που αλληλεξαρτούμενων μεταξύ τους με στόχο την μεταγλώττιση σύνθετων προγραμμάτων. Η λογική λειτουργίας του είναι αντίστοιχη του [[https://www.gnu.org/software/make/|GΝU Make]] και άλλων ανάλογων προγραμμάτων, περιέχει όμως χαρακτηριστικά που διευκολύνουν την διαδικασία μεταγλώττισης αρχείων JAVA. | <WRAP important 60% center round> |
| ===Η συγκεκριμένη ενότητα είναι προαιρετική και μπορείτε να την παραλήψετε κατά την ανάγνωση της θεωρείας του μαθήματος.=== |
| </WRAP> |
| |
Βασικά χαρακτηριστικά του [[http://ant.apache.org/|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 αρχεία έχουν format [[http://www.w3schools.com/xml|XML]]. |
- Το configuration αρχείο έχει όνομα **build.xml**. | - Το configuration αρχείο έχει όνομα **build.xml**. |
===== Διάρθρωση καταλόγων αρχείων *.java και εκτελέσιμων αρχείων *.class ===== | ===== Διάρθρωση καταλόγων αρχείων *.java και εκτελέσιμων αρχείων *.class ===== |
| |
Όπως ήδη αναφέρθηκε, μια καλή πρακτική ανάπτυξης κώδικα JAVA είναι να διαχωρίζουμε τα αρχεία πηγαίου κώδικα ***.java** σε σχέση με τα μεταγλωττισμένα αρχεία ***.class**. Για τον σκοπό αυτό σε κάθε project, δημιουργούμε δύο φακέλους **src** που περιέχει αρχεία πηγαίου κώδικα και **build** που περιέχει μεταγλωττισμένα αρχεία. Ο κατάλογος **build** μπορεί να διακριθεί στους υποκαταλόγους **build/classes** (περιέχει τα αρχεία ***.class**) και **build/jar** (περιέχει τα αρχεία JAR, εφόσον υπάρχουν). Συνολικά η προτεινόμενη δομή καταλόγων είναι η εξής: | Όπως ήδη αναφέρθηκε, μια καλή πρακτική ανάπτυξης κώδικα JAVA είναι να διαχωρίζουμε τα αρχεία πηγαίου κώδικα ***.java** σε σχέση με τα μεταγλωττισμένα αρχεία ***.class**. Για τον σκοπό αυτό σε κάθε project, δημιουργούμε δύο φακέλους, **src** που περιέχει αρχεία πηγαίου κώδικα και **build** που περιέχει μεταγλωττισμένα αρχεία. Ο κατάλογος **build** μπορεί να διακριθεί στους υποκαταλόγους **build/classes** (περιέχει τα αρχεία ***.class**) και **build/jar** (περιέχει τα αρχεία JAR, εφόσον υπάρχουν). Συνολικά η προτεινόμενη δομή καταλόγων είναι η εξής: |
* **src** --> πηγαίως κώδικας | * **src** --> πηγαίoς κώδικας |
* **build/classes** --> αρχεία *.class | * **build/classes** --> αρχεία *.class |
* **build/jar** --> αρχεία *.jar | * **build/jar** --> αρχεία *.jar |
| |
<target name="jar" depends="build"> | <target name="jar" depends="build"> |
<jar destfile="build/jar/ce210library.jar" basedir="build/classes" includes="ce210/**" excludes="ce210/temp/**"> | <jar destfile="build/jar/ce325library.jar" basedir="build/classes" |
| includes="ce325/**" excludes="ce210/temp/**"> |
</jar> | </jar> |
</target> | </target> |
===== Εγκατάσταση Apache Ant ===== | ===== Εγκατάσταση Apache Ant ===== |
| |
| Η εγκατάσταση NetBeans εγκαθιστά και τα απαραίτητα εργαλεία μεταγλώττισης. Εάν χρησιμοείτε NetBeans δεν απαιτείται η επιπλέον εγκατάσταση Ant. |
==== Linux ==== | ==== Linux ==== |
| |
Εγκατάσταση της εφαρμογής [[https://code.google.com/p/winant/|winant]]. | Εγκατάσταση της εφαρμογής [[https://code.google.com/p/winant/|winant]]. |
| |
|Προηγούμενο: [[ :java:classpath | Η μεταβλητή περιβάλλοντος CLASSPATH ]] | | |Προηγούμενο: [[ :java:classpath | Η μεταβλητή περιβάλλοντος CLASSPATH ]] | [[ :toc | Περιεχόμενα ]] | Επόμενο: [[ java:access_modifiers | Περιοριστές Πρόσβασης ]] | |