Kısa bir süre önce Gradle'ı bir derleme sistemi olarak kullanmaya başladım. Gradle Ant ve Maven gibilerle yapar İlk karşılaştırma Maven'in bir açıklayıcı inşa sistemi ise, Ant bir zorunlu inşa sistemi olup, olmasıdır. Gradle, Maven tarafından zorunluluk olmadan bir deklaratif yapı sistemi iken. Imperative vs Declarative yapı sistemleri
bu şartların bildirim ve zorunlu o yapı sistemleri hakkında konuşurken söz konusu olduğunda daha iyi anlamak istedi.cevap
Özetle, bir ant komut dosyası karınca aracına ne yapması gerektiğini söyler - "bu dosyaları derleyip daha sonra bu klasöre kopyalayın. Sonra bu klasörün içeriğini alın ve bir arşiv oluşturun."
bir maven pom
biz sonucu olarak istiyorum neyi beyan ederken - "Burada proje bağlıdır kütüphanelerin adları vardır ve biz bir web arşivi oluşturmak istiyoruz". Maven, kütüphaneleri nasıl bulacağını ve kendi kaynak sınıflarını nerede bulacağını bilir.
Karınca size daha fazla esneklik sağlarken, sizi tekerleği sürekli olarak yeniden icat etmeye zorluyor. Diğer taraftaki Maven daha az yapılandırma gerektirir, ancak özellikle farklı bir iş akışına alışmışsanız çok fazla kısıtlama hissedebilir.
DÜZENLEME: karınca maven karşılaştırmanın önemli bir özelliği karınca değil iken maven, bağımlılıklar nereye çıkan sanat eseri koymak, bulunan bir kongre, dosyalar yalan gereken yerde açıklayan olmasıdır .
Bu yüzden maven'i bir otobüse binmek gibi kullanmayı düşünebilirsiniz - girdiğiniz yerden ve gittiğiniz yerden durağı seçersiniz. Karınca kullanmak bir araba kullanmak gibidir - bunu kendiniz yapmanız gerekir. Otobüs sürücüsüne ne yapması gerektiğini söylemek zorunda değilsiniz, ancak duraklar gitmek istediğiniz yerden çok uzak olabilir.
EDIT2: 'Tekerleği yeniden icat' metaforu umduğumdan daha az açık görünüyor. Demek istediğim budur:
Mantıklı varsayılanlar/kurallar olmadan, her bir proje için proje yapısını ve yapı yaşam döngüsünü açıkça tanımlamanız gerekir, bu da genellikle bir zevk ve görüş konusudur. Tercihler ekipler ve şirketler arasında değiştiği için, süreçler oluşturun. Bu, yeni proje üyeleri ve daha sonraki koruyucular için daha fazla bilişsel çaba gerektirir. Geliştiricilerin deneyimine ve uzmanlığına bağlı olarak, son çözümün genişletilmesi ve kullanılması zor olabilir.
Aşağıdaki yorumda da belirttiğim gibi, ant yapılar için en iyi uygulamaların mevcut olmasına rağmen, bunların her bir proje için uygulanmaları veya projeden projeye kopyalanarak yapıştırılmış bir kutu haline getirilmeleri gerekir. yapı aracının kendisinin varsayılan değeri.
Maven, takasın diğer tarafındaki tadı benim için çok uzak. Varsayılanları değiştirmek mümkün olduğu kadar kolay olmamalı.
- 1. OSGi Declarative Services vs ManagedService hizmeti yapılandırmak için?
- 2. Sınıf VS ref Yapı
- 3. Etiketleme sistemleri
- 4. VS Cordova IOS Uzak Yapı
- 5. İşletim sistemleri nasıl ayıklar?
- 6. Git inceleme sistemleri
- 7. çeşitli DBMS sistemleri
- 8. dvr gözetim sistemleri geliştirme iphone
- 9. SQLAlchemy bildirimi uzantısı vs elixir
- 10. VS 2008 Professional, Akıllı Aygıt .NET C# projesi - yavaş yapı
- 11. std :: allocator yapı/yoklama vs. yerleştirme yeni/p-> ~ T()
- 12. Google Arama Android sistemleri için api
- 13. Sabit bağlantı dizinine destek sağlayan dosya sistemleri
- 14. Çoklu Django Depolama Arka uç sistemleri
- 15. Yapı
- 16. Yapı
- 17. Yapı
- 18. Mark Gradle yapı dengesiz yapı
- 19. ASP.Net Sürüm/Yapı Numarası
- 20. Yaptığımın Yapı Varyantları
- 21. liman işçisi-oluşturma yapı hata yapı
- 22. yapı android
- 23. Dış Yapı?
- 24. bir yapı
- 25. Yapı lms-suit, OpenGL hatası
- 26. Adobe AIR ve farklı işletim sistemi dosya sistemleri
- 27. Bootstrap İç İçe Geçişli Izgara Sistemleri En İyi Uygulamalar
- 28. .NET 3.5 uygulamalarını yalnızca .NET 4 üzerinde çalıştıran .NET sistemleri
- 29. ID vs UniqueID vs ClientID vs UniqueClientID vs StaticClientID?
- 30. & vs * ve | VS +
Karınca üzerinde çalışmadım ama böyle bir şey zaten çözülmüş olmalı?Ant'deki eklentinin bir parçası gibi, daha çok projede aynı şey var mı? –
@AnkitDhingra Karınca ile yapılan popüler uygulamadan son kez işe yaramış olan ayarları kopyalayıp yapıştırmak :) Eminim ki en iyi yöntemler vardır, ama yine de bunları uygulamak zorundasınız. Lütfen – kostja
@AnkitDhingra 'ya bakınız, gerçekten tekerleği yeniden icat etmek gibi değil, haklısınız, onu yeniden inşa et. – kostja