Apa itu Ant?
Apache Ant adalah alat generasi berbasis Java. Menurut pendiri asli James Duncan Davidson, nama alat ini adalah akronim dari alat rapi lainnya.
Apa yang dilakukan semut:
Alat pembuatan digunakan dalam pengembangan perangkat lunak untuk mengonversi kode sumber dan file input lainnya menjadi file yang dapat dieksekusi (dan mungkin untuk format gambar produk yang dapat diinstal). Ketika proses pembuatan aplikasi menjadi lebih kompleks, menjadi lebih penting untuk memastikan bahwa langkah -langkah generasi yang sama persis digunakan selama setiap generasi, sambil mencapai otomatisasi sebanyak mungkin untuk menghasilkan versi generasi yang konsisten secara tepat waktu.
Keuntungan Semut:
Semut adalah alat build berbasis Java. Secara teori, ini agak mirip dengan Make In (UNIX) C, tetapi tidak memiliki kekurangan dalam Make. Versi terbaru adalah: Ant 1.8.4. Karena kita sudah memiliki, gnumake, nmake, selai dan alat build lainnya, mengapa kita membutuhkan alat build baru? Karena penulis asli ANT tidak dapat mentolerir keterbatasan dan ketidaknyamanan dari alat -alat ini saat mengembangkan perangkat lunak pada beberapa platform (perangkat keras). Alat Make-Like pada dasarnya berbasis shell: mereka menghitung dependensi dan kemudian menjalankan perintah (perintah ini tidak jauh berbeda dari perintah yang Anda ketik pada baris perintah). Ini berarti bahwa Anda dapat dengan mudah memperluas alat dengan menggunakan program OS khusus atau menulis (perintah) baru; Namun, itu juga berarti Anda membatasi diri pada OS tertentu, atau jenis OS tertentu, seperti UNIX.
Semut berbeda. Berbeda dengan mode ekstensi berdasarkan perintah shell, semut menggunakan kelas Java untuk memperpanjang. (Pengguna) Tidak perlu menulis perintah shell. File konfigurasi didasarkan pada XML. Berbagai tugas dapat dieksekusi dengan memanggil pohon target. Setiap tugas dijalankan oleh objek yang mengimplementasikan antarmuka tugas tertentu.
Semut mendefinisikan dependensi antara file yang dihasilkan, yang menggunakan kelas java lintas platform. Dengan Ant, Anda dapat menulis file generator tunggal yang beroperasi secara konsisten pada platform Java apa pun (karena semut itu sendiri diimplementasikan dalam bahasa Java), yang merupakan keuntungan terbesar dari semut
Semut menghasilkan analisis file:
Semut tidak mendefinisikan sintaks khususnya sendiri; Sebaliknya, file yang dihasilkannya ditulis dalam XML. Ada satu set elemen XML yang telah ditentukan yang dapat dipahami semut, dan elemen -elemen baru juga dapat didefinisikan untuk memperluas fungsionalitas ANT. Setiap file build terdiri dari satu elemen proyek, yang pada gilirannya berisi satu atau lebih elemen target. Target adalah langkah yang ditentukan dalam proses pembuatan, yang melakukan sejumlah operasi, seperti menyusun satu set file sumber. Dan operasi ini sendiri dilakukan oleh tag tugas khusus lainnya dan kemudian tugas -tugas ini akan dikelompokkan ke dalam elemen target individu sesuai kebutuhan. Semua operasi yang diperlukan untuk proses generasi tunggal dapat ditempatkan dalam elemen target tunggal, tetapi itu mengurangi fleksibilitas. Biasanya lebih disukai untuk membagi operasi tersebut menjadi langkah -langkah pembuatan logis, setiap langkah yang terkandung dalam elemen targetnya sendiri. Hal ini memungkinkan bagian individu dari proses pembuatan keseluruhan dilakukan tanpa harus melaksanakan bagian lain.
Misalnya, dengan hanya memanggil target tertentu, Anda dapat menyusun kode sumber proyek Anda tanpa harus membuat file proyek yang dapat diinstal. Elemen proyek tingkat atas perlu berisi atribut default, yang menentukan target yang akan dijalankan jika semut dipanggil. Maka Anda perlu menggunakan elemen target untuk menentukan target itu sendiri.
Berikut adalah file dasar yang dihasilkan:
<? Xml Version = "1.0"?> <Project Default = "init"> <target name = "init"> </arget
Penggunaan dasar semut:
1. Mengkonfigurasi Variabel Lingkungan:
Ant_home: c: /ant-1.8 -----> jalur direktori instalasi/dekompresi semut
Tambahkan ke jalur: c: /ant-1.8/bin -----> jalur direktori bin di semut
2. Konfirmasikan apakah konfigurasi variabel lingkungan berhasil membuka jendela CMD, dan kemudian masukkan perintah: semut:
Lihat tampilan berikut:
Karena semut perlu memiliki file build.xml secara default saat membangun, ada prompt di atas, yang berarti bahwa lingkungan ANT telah berhasil dikonfigurasi.
3. Buat folder bernama HelloWorld Menggunakan Ant:
Pertama, Anda perlu mengedit build.xml:
<? Xml Version = "1.0"?> <Project Default = "init"> <target name = "init"> <span style = "color:#ff0000;"> <mkdir dir = "helloworld"> </span> </target> </project>
Kemudian beralih ke direktori tempat file build.xml berada, masukkan semut, dan jika ada prompt sebagai berikut, pembuatan folder akan berhasil:
(Bagian init setara dengan output log)
4. Anda juga dapat menggunakan ANT untuk membuat direktori file bersarang multi-level yang hanya perlu dimodifikasi dalam file build.xml:
<? Xml Version = "1.0"?> <Project Default = "init"> <target name = "init"> <span style = "color:#ff0000;"> <mkdir dir = "helloWorld/a/b/c"/> </span> </target> </proyek>
5. Hapus direktori multi-level seperti di atas:
<? XML Versi = "1.0"?> <Project Default = "init"> <target name = "init"> <span style = "color:#ff0000;"> <delete dir = "helloworld"/> </span> </target> </project>
Catatan: Di sini jalur hanya perlu memasuki jalur direktori tingkat tertinggi, yang persis kekuatan alat semut:
Jika Anda ingin menghapus direktori di Java, Anda dapat menghapusnya kecuali direktori kosong, jika tidak, Anda harus secara bertahap menghapusnya.
Menggunakan alat semut, Anda dapat secara langsung menghapus folder yang berisi subdirektori.
Mari kita lihat file xml sampel lain:
<? Xml Version = "1.0"?> <Project Default = "init" name = "Project"> <creckripe> Proyek sederhana yang memperkenalkan penggunaan tag deskripsi dalam file build semut. </description> <!-Komentar XML juga dapat digunakan-> <name target = "init" description = "inisialisasi basis data argon"> <!-Lakukan langkah inisialisasi di sini-> </target> </joy Project>
Seperti yang dapat dilihat, komentar XML dapat digunakan di seluruh file build untuk kejelasan. Selain itu, semut mendefinisikan elemen deskripsi sendiri dan atribut deskripsi, yang dapat digunakan untuk memberikan anotasi yang lebih terstruktur.
Atribut semut:
Properti dalam semut mirip dengan variabel dalam bahasa pemrograman, dan semuanya memiliki nama dan nilai. Namun, tidak seperti variabel biasa, setelah diatur, sifat dalam semut tidak diubah; Mereka tidak berubah, seperti halnya objek string dalam bahasa Java. Ini mungkin tampak terbatas pada awalnya, tetapi untuk mengikuti prinsip sederhana Ant: Lagi pula, ini adalah alat generator, bukan bahasa pemrograman. Jika Anda mencoba menetapkan nilai baru ke properti yang ada, ini tidak akan dianggap sebagai kesalahan, tetapi properti masih akan mempertahankan nilai yang ada
Definisi dan Gunakan Properti:
<nama properti = "metal" value = "beryllium"/>
Untuk merujuk properti ini di bagian lain dari file yang dihasilkan, gunakan sintaks berikut:
Salin kode sebagai berikut: $ {Metal}
Misalnya, untuk menggunakan nilai seperti itu yang merupakan bagian dari nilai properti lain, tulis label sebagai berikut
<name properti = "logam-database" value = "$ {metal} .db"/>
Atribut Lokasi:
Atribut sering digunakan untuk referensi file atau direktori pada sistem file, tetapi untuk platform yang menggunakan pemisah jalur yang berbeda (misalnya, / dan /), ini dapat menyebabkan masalah ketika mencakup platform yang berbeda. Atribut lokasi ANT dirancang khusus untuk memasukkan jalur sistem file dengan cara yang tidak tergantung pada platform. Gunakan lokasi alih -alih nilai seperti ini:
<name properti = "database-file" location = "arsip/database/$ {metal} .db"/> Karakter yang dipisahkan jalur yang digunakan untuk atribut lokasi akan dikonversi ke format yang benar dari platform saat ini; Dan karena nama file relatif, itu dianggap relatif terhadap direktori dasar proyek. Kami juga dapat dengan mudah menulisnya sebagai berikut:
<name properti = "database-file" location = "arsip/database/$ {metal} .db"/>Kedua versi tag ini akan memiliki perilaku yang sama pada platform yang berbeda.
Mendefinisikan dependensi:
Menghasilkan proyek umumnya membutuhkan banyak langkah - misalnya, pertama -tama Anda perlu mengkompilasi kode sumber dan kemudian mengemasnya ke dalam file arsip Java (JAR). Banyak dari langkah -langkah ini memiliki urutan yang jelas - misalnya, Anda tidak dapat mengemas file kelas sampai kompiler menghasilkannya dari kode sumber. Tidak seperti menentukan target secara berurutan, ANT mengambil pendekatan yang lebih fleksibel untuk mendefinisikan ketergantungan. Setiap tujuan didefinisikan berdasarkan semua tujuan lain yang harus dicapai sebelum dapat dieksekusi. Ini dicapai dengan menggunakan atribut tergantung dari elemen target
<target name = "init"/> <target name = "preprocess" tergantung = "init"/> <target name = "compile" tergantung = "init, preprocess"/> <target name = "package" tergantung = "compile"/>
Metode ini memungkinkan Anda untuk melakukan proses pembuatan pada setiap tahap proyek; Semut pertama -tama akan menjalankan fase prasyarat yang ditentukan. Dalam contoh di atas, jika semut menyelesaikan langkah kompilasi, itu akan menentukan bahwa dua tujuan init dan preprocess perlu dieksekusi terlebih dahulu. Target init tidak bergantung pada target lain, sehingga akan dieksekusi terlebih dahulu. Semut kemudian memeriksa preprocessStarget dan menemukan bahwa itu tergantung pada target init; Karena yang terakhir telah dieksekusi, semut tidak akan menjalankannya lagi, jadi dia mulai mengeksekusi target preprocess. Akhirnya, tugas kompilasi itu sendiri dapat dieksekusi.
Perhatikan bahwa urutan target muncul dalam file yang dihasilkan tidak penting: urutan eksekusi ditentukan secara unik oleh atribut tergantung.