- Java, Scala ve Kotlin'i destekleyen hızlı ve ölçeklenebilir çok dilli bir derleme aracı
- JVM derleme araçları genelde yavaş ve karmaşık olarak değerlendirilse de Mill, JVM'nin performansını ve kullanılabilirliğini en üst düzeye çıkarmayı hedefler
- Aynı Java kod tabanını Maven'dan 5-10 kat, Gradle'dan 2-4 kat daha hızlı derleyebilir
- Typed Config dili ve Immutable görev grafiği sayesinde derlemeleri temiz ve anlaşılır tutar
- Küçük tek modüllü projelerden yüzlerce modül içeren büyük monorepo'lara kadar iyi ölçeklenir
Mill'in avantajları
- Performans: Mill'in derleme grafiği, iş akışını hızlı ve duyarlı tutmak için derleme görevlerini otomatik olarak önbelleğe alır ve paralelleştirir. Projeyi derlemek için gereken mantığa yalnızca minimum ek yük eklerken, derlemedeki darboğazları tespit edip çözmeye yardımcı olan araçlar sunar
- Bakım kolaylığı: YAML ve Bash'in ötesine geçerek yapılandırma ve özelleştirme mantığını kısa, tip denetimli kodla yazmanıza olanak tanır; ayrıca değişmez modül ağacı ve görev grafiği kullanır. Bu sayede yapılandırma sorunları erkenden fark edilir ve IDE'lerin (IntelliJ veya VSCode) Mill derlemelerini diğer derleme sistemlerine göre daha iyi anlamasına yardımcı olur
- Esneklik: Mill'in görevleri ve modülleri, basit derleme adımları eklemekten tam bir dil araç zinciri kurmaya kadar her şeye izin verir. Derlemede her türlü JVM kütüphanesini kullanabilir, Mill'in zengin üçüncü taraf eklenti ekosisteminden yararlanabilir veya kendi eklentinizi yazıp başkalarının kullanması için Maven Central'da yayımlayabilirsiniz
Mill ve diğer derleme araçları
- Mill, Maven, Gradle ve Bazel gibi diğer araçlardan fikirler alır; ancak her birinin güçlü yanlarını benimseyip zayıf yönlerini iyileştirmeye çalışır
- Mill vs Maven
- Mill, Maven'ın iyi varsayılanlar sunma yaklaşımını izler
- Mill'in yerleşik
JavaModule bileşeni, Maven'ın "configuration over convention" yaklaşımını izler; bu sayede küçük Mill projeleri başlamak için çok az çaba gerektirir, daha büyük Mill projeleri ise bu varsayılanlar üzerine kurulu tutarlı bir yapıya sahip olur
- Mill, derlemeleri otomatik olarak önbelleğe alır ve paralelleştirerek 3-10 kat hız artışı sağlar
- Bu yalnızca Mill ile gelen yerleşik görevler için değil, özel görevler ve modüller için de geçerlidir. Bu yaklaşım, özellikle derleme sürelerinin uzama eğiliminde olduğu büyük kod tabanlarında, komut satırı derleme iş akışının çevikliğini en üst düzeye çıkararak üretkenliği korumaya yardımcı olur. Maven'daki "clean install" iş akışının 1 dakikadan uzun sürebilmesine karşılık Mill'de bu işlem yalnızca birkaç saniye sürebilir
- Mill, derleme aracını Maven'a göre çok daha kolay özelleştirmenizi sağlar
- Projeler genelde tek bir dili derlemenin ötesine büyür. Özel kod üretimi, lint iş akışları, araç entegrasyonları, çıktı artefaktları veya ek dil desteği gerekir. Mill'in genişletilebilirliği ve IDE deneyimi, tip denetimli kod ve sandbox görevleri sayesinde bunları doğrudan, kolay ve güvenli şekilde yapmanızı sağlar
- Mill vs Gradle
- Mill, Gradle'ın kısalığını ve genişletilebilirliğini benimser
- Uzun XML sayfaları yerine, Mill derlemelerindeki her satır anlam taşır. Örneğin bağımlılık eklemek, Maven'da görülen 5 satırlık
<dependency> tanımı yerine Gradle'da olduğu gibi Mill'de de 1 satırdır. Gradle'da olduğu gibi son kullanıcılar da eklenti yazma sürecinden geçmek zorunda kalmadan derlemeyi tam ihtiyaçlarına göre kolayca özelleştirebilir
- Mill, Gradle'dan 2-3 kat daha hızlı olabilir
- Mill ve Gradle derlemeleri otomatik olarak önbelleğe alıp paralelleştirse de Mill bunu çok daha düşük sabit ek yükle yapar. Bu da derleme aracını beklemek için daha az, proje için gerçekten önemli işlere daha fazla zaman ayrılması anlamına gelir
- Mill, en iyi uygulamaları varsayılan olarak uygular
- Mill derlemesinin her parçası varsayılan olarak önbelleğe alınır ve artımlıdır. Tüm Mill görevleri çıktıları standart konumlara yazar. Görevler arası tüm bağımlılıklar elle açıklama eklemeye gerek kalmadan otomatik olarak yakalanır. Gradle'da derlemeyi anlamak ve doğru şekilde yapılandırmak ciddi çaba ve uzmanlık gerektirirken, Mill'in güçlü IDE deneyimi derlemeyi daha kolay anlaşılır hâle getirir ve genişletilebilirlik modeli yapılandırma hatalarını önlemeye yardımcı olur; bu yüzden Mill'de en kolay yapılan şey genellikle doğru olan şeydir
Henüz yorum yok.