Ant hala Java sürümleri için “ana akımda” mı?


14

Geliştiriciler IDE'de derlenen sınıfları daha kapsamlı Ant yapılarıyla (yani CVS, temiz derleme, kavanoz, arşiv, e-posta vb.) Almak için toplu komut dosyalarını (windows .bat) yavaşça değiştiriyoruz.

Ant ile öğrenmeye (ve hata ayıklama sorunlarına) çok zaman harcadım, bu yüzden bu görevler için en rahat şekilde kullanıyorum. Ama Ant'in hala öğrenmeye başladığım kadar geniş bir kullanım alanına sahip olup olmadığını veya "dünyanın daha yeni bir şeye (ve belki de daha ince) bir şeye geçip geçmediğini merak ediyorum. (Örneğin, daha önce hiç kullanmadığım daha fazla Maven dağıtılmış malzeme görmeye başladım.)

Bu sorunun pratik ithalatı, yeni geliştiricileri Ant'i öğrenmeye zorlasam mı yoksa yapılar için başka bir şey öğrenmeleri mi gerekiyor?

Hiçbir zaman trendlerin üstünde değilim, bu yüzden diğer Java geliştiricilerinden en iyi oluşturma aracı olduğunu düşündüklerini ve yeni geliştiricilerin öğrenmesi gerektiğini düşündüklerini duymak harika olurdu.


Aşağıdaki tüm cevapları okuyun ve hepsi harika! Maven'in Ant üzerinde ne gibi gelişmeler olduğuna dair anlayışınız için teşekkürler. Maven'e bakacağım.
Sam Goldberg

Karınca için tonlarca senaryo gerektirmeyecek kadar basit projeler çok az. Maven bu şeylerin çoğunu standart bir şekilde ele alıyor.

Ant temelde XML'de bir kabuk betiğidir (ve kabuk komutları yerine Ant komutlarını kullanır).
user253751

Karınca inanılmaz bir zaman kaybıdır. Maven korkunç olsa bile daha akıllıca bir seçim oldu. Ant'in bir IDE'ye entegre olmasının hiçbir yolu yoktur ve Java projeleri büyük bir dosya karmaşasıdır - zamanınızın% 30'unu sadece dosyadan dosyaya atlayarak geçirirsiniz.
bryan hunt

@bryanhunt: Maven'i tüm yeni projeler için kullandık. Ancak Maven'in Java uygulamaları için bir dağıtım paketi oluşturması için iyi bir yol bulamadım. (Bağımlılıkları kopyalamak, kavanoz yüklemek için iyidir.) Okuduğum gönderilerin çoğu, nasıl yapılacağını cevaplıyor, Ant eklentisini kullandığını söylüyor. Bu yüzden Ant'den Maven'in son üretimini düzenlemek için kullandığımı fark ettim. Ve Ant'de bunu Maven Assembly eklentisini kullanmaktan daha kolay görünüyor.
Sam Goldberg

Yanıtlar:


23

Burada, Maven'in baktığım en önemli projeleri devraldığı anlaşılıyor.

Ant son derece esnek olsa da, derleme dosyası standartlaştırılmaz, bu nedenle yeni bir projeye veya şirkete taşındığınızda, hedefler farklı adlandırılır, dosya farklı yapılandırılır, hedefler arası bağımlılıklar oluşturulabilir veya oluşturulamaz, vb.

Maven ile, SCM sisteminizde ikili bağımlılıklar (kavanozlardan bahsediyorum) taşımak zorunda kalmamanın avantajını da elde edersiniz. Diğer birçok Java aracı Maven POM dosyasının nasıl okunacağını bilir (standardizasyonun avantajı), bu nedenle IDE'ler gibi araçlar bir Maven projesini çok hızlı bir şekilde kurabilir ve Jenkins gibi araçlar kolayca Maven yapılarını yürütebilir.


13
Maven kullanmanın projelerimizi IDE agnostik hale getirdiğini ve IDE savaşları olan bir dükkanda bulunduysanız, bu dini savaşı ortadan kaldırmayı takdir edebileceğinizi de eklemeliyim!
RonU

11

Ant ve Maven ile çalışıyorum. Deneyimlerime göre Maven'in Ant'e karşı çok güçlü bir kenarı var.

  • Son 2 veya 3 yılda gördüğüm tüm projeler maven kullanıyor gibi görünüyor. Yaklaşık 3 yıl önce bu beni meraklandırdı çünkü o zaman kullanılan maven versiyonları (2.0.something) oldukça güvenilmez ve buggy gibi görünüyordu. Bir noktada olsa da (2.1 veya 2.2 hatırlamıyorum) maven güvenilir hale geldi ve bir süre geçirdikten sonra fikrimi tersine çevirdim. Şimdi, maven'e karınca tercih eden birini görmek beni şaşırttı.

Maven hakkında daha az olumlu bir notta, belgelerine ilişkin deneyimim o kadar büyük değildi. Sanırım maven'den daha kötü belgelere sahip bir ürün gördüm ama hangisini hatırlayamıyorum (bazı eski CSV kütüphanesi iirc).


2
Dunno, Maven Referansını oldukça iyi buldum . Mükemmel değil ve gerçekten karanlık belgelenmemiş köşeler var, ama yine de IMHO ortalamanın önemli ölçüde daha iyi.
Péter Török

@ PéterTörök sağ Maven Referans benim de ilk yardımım. Her nasılsa beni endişelendiren şeylerin çoğu bu karanlık belgesiz köşelerde sona eriyor . Kesin olarak, bu köşeleri "belgesiz" den daha karanlık buluyorum - yani bilginin orada olduğunu hissediyorum ama deşifre edemiyorum. Bilmiyorum belki şanssızım. Ya da belki aptal. Ya da belki Maven adamlar çetelerinde iyi bir teknoloji yazarından yoksundur
gnat

1
Neden, hiç bir açık kaynak projesi gördük vardı iyi bir teknoloji yazar? ;-)
Péter Török

@ PéterTörök çok doğru! :) Popüler OSS projelerinin lüksü, doktor yazarını "değiştiren" pek çok uzman adam olması. Benim için Maven'de durum buydu - her zaman etrafta zor şeyler hakkında sorabileceğim bir guru vardı
gnat

3

Maven'i birkaç yıldır kullanıyoruz. Ant komut dosyasını destekler (Ant'in BeanShell'i desteklediği gibi), bu nedenle Ant bilginiz hala yararlı olabilir. Maven çok daha güçlüdür, ancak bazı ek altyapı gereksinimleri vardır (bileşenleri birden fazla proje arasında paylaşırsanız yapı veya Nexus sunucusunun yapılarınızı barındırmasını istersiniz). Ayrıca Ant'den oldukça farklıdır, bu nedenle mevcut bilgilerinizin çoğundan yararlanamazsınız.


1

Bence Ant tek başına suda öldü; tüm sınıf yolu bağımlılıklarınızı (kurulumunuza bağlı olarak) manuel olarak belirtmeniz çok mantıklı ve hataya açıktır. Ant, Ivy gibi bir bağımlılık yönetimi aracıyla birlikte kullanılırsa, gücünü korur ve bağımlılıklarınızı manuel olarak yönetme ihtiyacını ortadan kaldırır.

Ant ile Maven'e kıyasla bir diğer sorun, diğer cevaplarda bahsedilen standardizasyon eksikliğidir. Projeden projeye veya işten işe geçerken bulduğum en sinir bozucu şeylerden biri farklı Ant dosyaları için yeni standardı öğrenmek zorunda. Maven'in yapılandırma konvansiyonu , iki farklı projenin çok benzer bir yapıya sahip olacağı anlamına gelir, bu da aralarındaki geçişi Ant'den çok daha kolay hale getirir.

Ant'in hala ana akım olup olmadığı konusunda, çalıştığınız geliştirme ortamına bağlı olacaktır. Proje küçük bir şirkette veya bir başlangıçta ise, Maven'in doğal seçim olacağını ve zamanın alınabileceğini hayal ediyorum Yapay bir altyapı gibi altyapıya yatırım yapmak. Bununla birlikte, büyük şirketler Ant altyapısına (konfigürasyonlar, global yapı dosyaları vb.) Uzun yıllar ve çok para yatırmış olacaklar, bu da çok fazla yatırım yaptıkları bir teknolojiden uzaklaşmaya daha az istekli olacakları anlamına geliyor.


0

Maven yıllardır yükselişte ve şimdi öğrenmem gerekiyor. İşler her zaman değişecek ve Ant'in konumunu kaybettiğini bilmek kötü bir şey değil.

Maven sadece kısa bir süre ayakta kalabilir ve gelebilir, ancak işimizi kolaylaştırırsa, öğrenmek için zaman ayırmaya değer.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.