Kami telah perlahan-lahan mengganti file batch perintah (windows .bat) yang hanya menggelegar kelas yang dikompilasi dalam IDE pengembang, dengan membangun Ant yang lebih komprehensif (yaitu dapatkan dari CVS, kompilasi bersih, jar, arsip, email, dll.)
Saya telah menghabiskan banyak waktu belajar (dan masalah debugging) dengan Ant, jadi saya paling nyaman menggunakannya untuk tugas-tugas ini. Tetapi saya bertanya-tanya apakah Semut masih digunakan secara luas seperti ketika saya pertama kali mulai belajar, atau apakah "dunia telah pindah" ke sesuatu yang lebih baru (dan mungkin lebih licin). (Saya sudah mulai melihat lebih banyak Maven membangun barang yang didistribusikan, yang saya tidak pernah gunakan, misalnya.)
Impor praktis dari pertanyaan ini, adalah apakah saya mendorong pengembang baru untuk mempelajari Semut , atau apakah mereka harus mempelajari sesuatu yang lain untuk pembuatan?
Saya tidak pernah terlalu di atas tren, jadi akan sangat bagus untuk mendengar dari pengembang Java lain apa yang mereka pikir adalah alat membangun terbaik, dan apa yang menurut mereka harus dipelajari oleh pengembang baru.
Jawaban:
Saya setuju dengan yang lain di sini bahwa Maven tampaknya telah mengambil alih sebagian besar proyek signifikan yang pernah saya lihat.
Sementara Ant sangat fleksibel, file build tidak terstandarisasi, jadi ketika Anda pindah ke proyek atau perusahaan baru, target diberi nama berbeda, file terstruktur berbeda, dependensi antar-target mungkin atau mungkin tidak dibuat, dll.
Dengan Maven, Anda juga mendapatkan manfaat dari tidak harus membawa dependensi biner (saya berbicara tentang botol) di dalam sistem SCM Anda. Banyak alat Java hebat lainnya tahu cara membaca file POM Maven (manfaat dari standardisasi), jadi alat seperti IDE dapat mengatur proyek Maven dengan sangat cepat, dan alat bantu bangunan seperti Jenkins dapat dengan mudah menjalankan pembuatan Maven.
sumber
Saya telah bekerja dengan Ant dan dengan Maven. Dalam pengalaman saya, Maven memiliki keunggulan yang sangat kuat atas Ant.
Pada catatan yang kurang positif tentang pakar, pengalaman saya dengan dokumentasinya tidak begitu bagus sejauh ini. Saya pikir saya telah melihat produk dengan dokumentasi lebih buruk daripada pakar tetapi saya tidak ingat yang mana (beberapa perpustakaan CSV kuno iirc).
sumber
Kami telah menggunakan Maven selama beberapa tahun. Ini mendukung Ant scripting (seperti Ant mendukung BeanShell), jadi pengetahuan Ant Anda mungkin masih berguna. Maven jauh lebih kuat, tetapi memiliki beberapa persyaratan infrastruktur tambahan (Anda akan ingin server Artifactory atau Nexus menjadi tuan rumah bangunan Anda jika Anda berbagi komponen di antara beberapa proyek). Ini juga sangat berbeda dari Ant, sehingga Anda tidak dapat memanfaatkan banyak pengetahuan yang ada.
sumber
Saya pikir Semut sendiri mati di air; harus menentukan semua dependensi classpath Anda secara manual (tergantung pada pengaturan Anda) terlalu manual dan jauh dari kesalahan. Jika Semut digunakan bersama alat manajemen dependensi, seperti Ivy, maka Ant tetap mempertahankan kekuatannya dan menghilangkan kebutuhan untuk mengelola dependensi Anda secara manual.
Masalah lain dengan Ant ketika dibandingkan dengan Maven adalah kurangnya standarisasi, yang telah disebutkan dalam jawaban lain. Ketika berpindah dari satu proyek ke proyek atau pekerjaan ke pekerjaan, salah satu hal paling menjengkelkan yang saya temukan adalah harus mempelajari standar baru untuk berbagai file Ant. Tujuan konvensi Maven mengenai konfigurasi berarti bahwa dua proyek yang berbeda akan memiliki struktur yang sangat mirip, membuat transisi di antara mereka lebih mudah daripada dengan Ant.
Adapun apakah Ant masih mainstream atau tidak, itu akan tergantung pada lingkungan pengembangan tempat Anda bekerja. Jika proyek tersebut berada di perusahaan kecil atau baru, saya akan membayangkan Maven akan menjadi pilihan alami dan waktu dapat diambil untuk berinvestasi dalam infrastruktur, seperti Artifactory. Namun, perusahaan besar akan menginvestasikan bertahun-tahun dan banyak uang ke infrastruktur Ant mereka (konfigurasi, file build global, dll.) Yang berarti mereka akan kurang tertarik untuk pindah dari teknologi di mana mereka telah menginvestasikan begitu banyak uang.
sumber
Maven telah meningkat selama bertahun-tahun, dan sekarang saya perlu mempelajarinya. Segala sesuatu akan selalu berubah, dan mengetahui bahwa Ant kehilangan posisinya bukanlah hal yang buruk.
Maven mungkin hanya naik dan datang untuk waktu yang singkat, tetapi jika itu membuat pekerjaan kita lebih mudah, maka ada baiknya menginvestasikan waktu untuk belajar.
sumber