gradle vs maven maven plugins
Bu eğitimde Gradle ile Maven arasındaki Farklar Tartışılacaktır. Ayrıca Çeşitli Maven Eklentileri ve Yapılandırmaları hakkında bilgi edineceksiniz:
Maven gibi Gradle, Java geliştiricileri tarafından bir derleme için kullanılan bir otomasyon aracıdır. Gradle, açık kaynaklı bir araçtır ve alana özgü olan ve Groovy'de geliştirilen bir dili kullanır.
=> Mükemmel Maven Eğitim Kılavuzuna Buradan Göz Atın.
Ne öğreneceksin:
Gradle Vs Maven
Gradle ve Maven arasındaki temel farklar aşağıda tablo halinde verilmiştir:
Gradle | Uzman |
---|---|
Performans açısından Gradle, sağlanan girdi veya çıktıyla değil, yalnızca mevcut çalışan görevle ilgilendiği için daha iyidir. | Maven, projeyi oluşturmak için önceki yapı yapılarını veya önbelleği kullanmaz, bu nedenle yeni bir proje oluşturmak için gereken süre daha fazladır. |
Groovy'de geliştirilmiş bir otomasyon inşa sistemidir. | Bir inşa ve proje yönetimi aracıdır. |
Gradle, proje derlemesi için herhangi bir xml dosyası tarafından yönlendirilmez, bunun yerine dili kullanır - etki alanına özgü Groovy. Proje bilgileri Gradle aracında tutulur. | Maven, bağımlılıklar, eklentiler ve profiller vb. Hakkında bilgiler içeren bir xml dosyası tarafından yönetilir. |
Gradle aşamalı olarak çalışır ve daha hızlı bir yapı tamamlama sağlar. | Maven aşamalı bir yaklaşım benimsemez ve derleme zamanlamaları açısından Gradle'dan daha yavaştır. |
Gradle betiği basittir, uzun değildir ve kolayca anlaşılabilir. | Maven, açıklayıcı, uzun ve kolay anlaşılamayan xml dosyasına sahiptir. |
Gradle, IDE desteği ile araçta bulunan çok sayıda seçenek açısından çok fazla esnekliğe sahip olduğu için kolayca özelleştirilebilir. | Maven’ın özelleştirilmesi kolay değildir ve IDE desteğine sahip olmadığı için bazen mümkün değildir. |
Bir Gradle aracının amacı, projede yeni özelliklere sahip olmaktır. | Bir Maven aracının amacı, bir projeyi belirli bir sürede bitirmektir. |
Gradle'da Java derlemesi gerekli bir adım değildir. | Maven'de derleme gerekli bir adımdır. |
Gradle, nispeten modern bir araçtır ve kullanıcılarının sayısı sınırlıdır. | Maven tanıdık bir araçtır ve Java geliştiricileri arasında popülerdir. |
Gradle'a xml kullanılmadan proje için çok sayıda bağımlılık eklenebilir. | Projeye xml dosyasına (pom) eklenerek çok sayıda bağımlılık eklenebilir, böylece Gradle'dan daha karmaşık ve yönetilmesi zor hale gelir. |
Build.gradle dosyası group, baseName ve version gibi öğeleri içerir. | Pom.xml dosyası, ve gibi öğeleri içerir. |
Maven ile Gradle Arasında Birkaç Fark
Gradle, gerçekleştirilmesi gereken bir grup görevden oluşur. Maven sabit ve kesin bir aşamalar modeline sahipken. Maven hedefleri, projenin aşamalarıyla bağlantılıdır ve her hedef Gradle görevlerine benzer.
Verim
Performans söz konusu olduğunda, hem Gradle hem de Maven, paralel olarak farklı modüller üzerinde birden fazla derlemeyi çalıştırabilir.
Ancak Gradle, artımlı bir yapı yaklaşımı izler ve görevlerin değiştirilip değiştirilmediğini doğrular ve yalnızca güncellenen dosyalarla ilgilenir.
Gradle, aşağıda listelenen özellikler nedeniyle daha iyi performansa sahiptir:
- Artımlı bir şekilde Java sınıfı derlemesi.
- Diğer Gradle inşa eserlerini benzer girdilerle yeniden kullanmak.
- API'lerin daha fazla kullanımı.
- Derleyici arka plan programı yardımıyla daha hızlı derleme.
Önbellek yönetimi oluşturma, Gradle'ı Maven'den çok daha hızlı hale getirir.
Esneklik
Gradle, Google tarafından Android için bir oluşturma aracı olarak kullanılır çünkü en temel metodolojilerle genişletilebilecek şekilde tasarlanmıştır. Gradle'ın modeli, C veya C ++ 'nın geliştirilmesi için kullanılabilir ve başka herhangi bir ortama genişletilebilir.
Maven kolayca özelleştirilemez ve genellikle uygulanabilir değildir. Bu, herhangi bir karmaşık veya özel gereksinimle uğraşmak zorunda kalmazsak Maven yapılarını anlamamızı kolaylaştırır. Bununla birlikte, Gradle kullanım için kolayca özelleştirilebilir.
Gradle, Derleme Taraması'nda kodlama, hata ayıklama ve optimizasyon görevleri oluşturmak için ilginç bir etkileşimli web kullanıcı arayüzü sunar. Yapıdaki eğilimler, geçmiş ve diğer parametreler hakkında önemli bilgiler sağlar.
Bağımlılık Yönetimi
Gradle, Maven'den daha iyi API'lere ve bağımlılık uygulamalarına sahiptir. Ayrıca tesadüfi önbelleklere izin verir. Bu, birden çok projenin ortak önbelleği birbirinin üzerine yazmadan kullanabileceği anlamına gelir. Gradle sağlama toplamına sahiptir ve depolarla birlikte önbellekleri senkronize eder.
Aşağıdakiler gibi bazı bağımlılık yönetimi özelliklerine sahiptir:
- Uyumlu kitaplıklar için değiştirme kuralları.
- Kurallara göre Değiştirildi.
- Projenin bağımlılıklarını harici olanlarla geri yükleyin ve tersi.
Hem Gradle hem de Maven'in dinamik ve geçişli bağımlılıkları vardır. Maven Yerel, Merkezi ve Uzak depolara sahipken, Gradle'da JCenter vardır. Ayrıca, kurumlar içinde özelleştirilmiş depolar da bulunmaktadır.
Gradle ve Maven Kodlama Örnekleri
2.0.0 com.softwareTest Java-builds jar 2.0 j unit junit 2.10 org.apache.maven.plugins maven-surefire-plugin 2.2.1
Bir jar dosyası oluşturan bir Maven hedefini yürütmek için aşağıdaki Maven komutu kullanılır:
ücretsiz Windows kayıt defteri temizleyici ve onarımı
mvn package
Bu nedenle, pom.xml dosyasının açıklayıcı olduğunu ve birden çok görev, yapılandırma ve bağımlılık içeren Maven projelerinin uzun xml dosyalarına sahip olacağını görüyoruz.
Aynı sonucu veren ilgili build.gradle kodu aşağıda verilmiştir:
apply plugin:'java' apply plugin:'maven' group = 'com.softwareTest' version ='2.0' repositories { mavenCentral() } dependencies { testCompile group:'junit', name:'junit', version:'2.10' }
Böylece Gradle yazısının Maven'e göre daha kısa olduğunu görüyoruz. Aşağıdaki komut, bir grup görevi yürütmek için kullanılır.
gradle tasks –all
Gradle'ın Maven'den daha yetenekli olduğunu görüyoruz. Ancak, Gradle'ın tüm bu ek işlevlerine ihtiyaç duymadığımız durumlar olabilir. Yani Maven küçük projeler için daha uygundur, Gradle ise daha büyük projelerde kullanılır.
Gradle Vs Maven Temel Komutları
Aşağıdaki tablo, Gradle ve Maven'in bazı temel komutlarını listelemektedir:
Amaç | Gradle komutu | Maven komutu |
---|---|---|
kesin ateş | Junit testleri, yalıtılmış bir sınıf yükleyicide çalıştırılır. | |
SAVAŞ / KULAK / KAVANOZ oluşturmak için | gradle montajı | mvn paketi |
Çalıştırmak ve derlemek için | gradle testi | mvn testi |
Derleme dizinini sil | temiz | mvn temiz |
Eclipse ile entegre edin | gradle tutulması | mvn tutulması: tutulma |
Kurulum için | gradle kurulumu | mvn yükleme |
Sürümü almak için | gradle versiyonu | mvn sürümü |
Gradle'ı Maven'e ve tersi şekilde dönüştürebiliriz.
Maven'i Gradle olarak değiştirmek için aşağıdaki adımları takip edebiliriz:
# 1) Maven proje klasörüne gidin (pom.xml dosyasının konumu).
#iki) Komutu yürütün gradle init.
Bu, aynı anda bir Gradle derlemesi oluşturmaya neden olur settings.gradle dosya ve build.gradle dosyalar oluşturulacak.
Gradle'ı Maven olarak değiştirmek için aşağıdaki adımları sırasıyla takip ediyoruz:
# 1) build.gradle dosya Maven eklentisine sahip olmalıdır.
# 2) build.gradle dosya aşağıdaki kod bloğuna sahip olmalıdır:
apply plugin: 'java' apply plugin: 'maven' group = 'com.test' version = '0.4' dependencies { compile 'commons-lang:commons-lang:2.3' }
# 3) Sonra çalıştır gradle install.
Bu, pom alt klasörü içinde pom-default.xml dosyalarının oluşturulmasıyla sonuçlanacaktır.
Maven'in Yapılandırması
Kullanım ve inşa edilen projeler için Maven yapılandırma bilgileri aşağıdaki yerlerde kalır:
- MAVEN_OPTs çevresel değişkeni : Java Virtual Machine (JVM) 'yi başlatmak için gerekli bilgileri içerir ve ayrıca JVM'nin bellek ayarları gibi -Xms256m -Xmx512m gibi bir değere ayarlanabilen ek özellikler sağlar.
- Settings.xml dosyası: Bu dosya USER_HOME / .m2 dizininde bulunur. Bu dosya, Maven'de oluşturulan tüm projelerde kullanılan konfigürasyonların çoğunu ele alır.
- .mvn klasörü: Bu klasör, proje dizininin en üst seviyesinde bir yer bulur. Jvm.config, maven.config ve extensions.xml dosyaları, projeye özgü yapılandırma hakkında bilgi içerir.
- .mvn / extension.xml dosyası
- .mvn / maven.config dosyası
- .mvn / jvm.config dosyası
Maven'in yapılandırması aşağıda listelenen seviyelerde yapılır:
- Kurulum: Bu, Maven'in kurulumu sırasında gerçekleştirilir.
- Proje: Bu, pom.xml dosyasında tutulan statik olandır.
- Kullanıcı: Bu, belirli bir kullanıcı için yapılandırılmıştır.
Proje konfigürasyonu tüm projeye uygulanırken diğer konfigürasyonlar (kurulum ve kullanıcı) çalıştığımız ortama uygulanır. Kurulum ve kullanıcı konfigürasyonları, paylaşılan proje verilerinin bir parçası olarak eklenemez.
Yerel Depo Yapılandırması
Yerel arşiv konumu, kullanıcının yapılandırmasının bir parçası olarak değiştirilebilir. Varsayılan olarak konum .m2 dizinidir. Bu, aşağıdaki xml kodu ile elde edilir.
path to the directory
Proxy Yapılandırması
Proxy yapılandırması ayarlarda tutulabilir.
Paralel Artefakt Çözünürlük Yapılandırması
Maven, tek seferde çeşitli gruplardan en fazla 5 eser indirir.
İki eseri indirmek için aşağıdaki komutu belirtmemiz gerekiyor:
mvn -Dmaven.artifact.threads = 2 doğrulama
Dağıtım ve Güvenlik Yapılandırması
bölümü, belirli bir projede dağıtılacak depoları açıklar. Kullanıcı adı, şifre ve diğer güvenlik parametreleri gibi bilgiler bu projenin içine yerleştirilemez. Bu bilgileri sağlamak için, bunları proje içindeki dağıtım havuzunun kimliğine eşlenmiş olarak eklememiz gerekir.
Bu, aşağıdaki xml kodu ile elde edilir.
testrepository test password
Profil Konfigürasyonları
Maven deposu profile yerleştirilecek şekilde yapılandırılabilir. Bir seferde birden fazla profil olabilir. İhtiyaca bağlı olarak, çeşitli ortamlara geçiş yapabilmemiz için bir aktif profil tutabiliriz.
Diğer İsteğe Bağlı Yapılandırmalar
Her projeye özgü olmayan ortama özel bir konfigürasyona sahip olmak için ayarları yapılandırmamız gerekir.
örnekle regresyon testi nedir
Maven, kurulum veya kullanıcı ana dizininde bulunan bir ayarlar dosyasını içerir. Aşağıda gösterildiği gibi bazı çevresel parametrelerin konfigürasyonunu gerçekleştirir:
- Sunucu kullanıcı adı ve şifresi
- Depo yöneticisinin konumu
- HTTP proxy sunucusu
Güvenlik Yapılandırmaları
Maven 2.1.0+ sürümüne kadar, şifreleri ayarlar dosyasında şifreleme seçeneğine sahibiz. Ancak şifrelemeye gitmeden önce bir ana şifre oluşturmalıyız.
Maven Eklentileri
Maven eklentileri, Maven çerçevesinin ayrılmaz bir parçasıdır. Her eklenti belirli bir göreve atanır.
Aşağıda gösterildiği gibi iki tür eklenti vardır:
- Eklentiler Oluşturun : Derleme zamanında yürütülürler ve pom.xml dosyasındaki derleme etiketi altında açıklanmaları gerekir.
- Rapor Eklentileri : Site oluşturma zamanında yürütülürler ve pom.xml dosyasındaki raporlama etiketi altında açıklanmaları gerekir.
Aşağıdaki liste, Maven çekirdek eklentilerinden bazılarını göstermektedir:
Çekirdek Eklentiler | Gerçekleştirilen görevler |
---|---|
temiz | İnşa edildikten sonra eserleri temizler. |
derleyici | Java kaynak kodu derlendi. |
dağıtmak | Derleme yapıları uzak depoya dağıtılır. |
Yüklemek | Derleme yapıları yerel depoya yüklenir. |
doğrulayıcı | Entegrasyon testleri için kullanılır. |
kaynaklar | Çıktı dizini, Jar'a dahil edilecek kaynakların kopyasını alır. |
site | Mevcut proje sitesi oluşturulur. |
doğrulayıcı | Entegrasyon testi için kullanılır ve belirli koşulları kontrol eder. |
Maven Reporting eklentilerinden bazıları aşağıda listelenmiştir:
Rapor Eklentileri | Gerçekleştirilen görevler |
pmd | Bir pmd raporu oluşturulur. |
değişim günlüğü | SCM'den yapılan son değişiklikler liste şeklinde oluşturulur. |
değişiklikler | Sorun izleyiciyle ilgili rapor oluşturulur. |
kontrol stili | Checkstyle raporu oluşturulur. |
Javadoc | Proje için Java dokümanı oluşturulur. |
surefire raporu | Birim testlerin sonuçları rapor şeklinde oluşturulur. |
bağlantı denetimi | Proje dokümantasyonu için Linkcheck raporu oluşturulur. |
jxr | Bir çapraz kaynak referansı oluşturulur. |
SSS Bölümü
S # 1) Maven, Gradle'dan daha mı iyi?
Cevap: Gradle, artımlı ve işten kaçınma yaklaşımı kullanır. Gradle, girdi ve çıktı görevlerini izler ve gerekli olanları yürütür. Ancak, daha küçük projeler için hala Maven tercih edilirken, Gradle daha büyük ve karmaşık projeler için uygundur.
S # 2) Gradle neden Maven'den daha hızlı?
Cevap: Gradle, aşağıdaki Gradle yaklaşımlarından dolayı Maven'den çok daha hızlıdır.
- Yapı ayrıntılarını hafızada hazır tutan Gradle Daemon kullanımı.
- Artımlı bir şekilde derleme.
- Önceki derlemelerden yapıları alan derleme önbelleğinin kullanımı.
- Java eklentisi yardımıyla bağımlılıkların verimli bir şekilde Gradle tarafından modellenmesi.
S # 3) Maven Gradle nedir?
Cevap: Gradle, Apache Ant ve Apache Maven'in özellikleri üzerine geliştirilmiş bir otomasyon oluşturma aracıdır. Açık kaynaklıdır ve Groovy tabanlı alanla ilgili dilde çalışır. Proje bağımlılıkları ve konfigürasyonları için Maven tarafından kullanılan pom.xml dosyası tarafından yönlendirilmez.
S # 4) Maven neden tercih ediliyor?
Cevap:
Aşağıdaki avantajlarından dolayı Maven tercih edilmektedir:
- Tüm proje bağımlılıkları için merkezi depo.
- Kuruluşlar içinde ortak bir klasör yapısını korur.
- Git gibi sürüm kontrol araçları ve Jenkins gibi sürekli entegrasyon aracı ile entegre edilebilir.
- Oluşturma süreci daha basit, kolay ve tek tip hale getirildi.
S # 5) Maven yalnızca Java için mi?
Cevap: Maven, genellikle Java projeleri için kullanılan bir proje yönetimi ve derleme aracıdır. Ancak Ruby, C #, Scala vb. İle geliştirilen projeler için kullanılabilir.
S # 6) Maven neden Eclipse'de kullanılıyor?
Cevap: Eclipse IDE, bağımlılıkları ve yapılandırmaları Maven depolarından otomatik olarak indirir. Ayrıca yeni Maven projeleri oluşturmak, mevcut Maven Projesine destek ve pom .xml de Eclipse yardımıyla yapılabilmektedir.
S # 7) Gradle hangi dil?
Cevap: Gradle, yapı için DSL olarak da adlandırılan alanla ilgili bir dil verir. Bu dil Groovy ve Kotlin'de edinilebilir.
json dosyalarını ne ile açarım
S # 8) Maven'in avantajları nelerdir?
Maven'in aşağıdaki gibi bazı bağımlılıkları vardır:
- Tüm proje bağımlılıkları için merkezi depo.
- Kuruluşlar içinde ortak bir klasör yapısını korur.
- Git gibi sürüm kontrol araçları ve Jenkins gibi sürekli entegrasyon aracı ile entegre edilebilir.
- Oluşturma süreci daha basit ve kolaydır.
Sonuç
Bu eğitimde Gradle vs Maven gibi kavramlar, Gradle'ın Maven'e nasıl dönüştürüleceği ve bunun tersi, Maven yapılandırmaları ve eklentiler tartışıldı. Ayrıca, Maven ve Gradle'daki bazı temel komutlar araştırıldı.
Maven eklentileri söz konusu olduğunda, bazı raporlama ve temel Maven eklentilerini tartıştık.
Maven piyasada sıcak bir konu olduğundan, konu hakkında bir anlayış geliştirmek ve bu araçla ilgili uzmanlık geliştirmek gerekiyor.
=> Easy Maven Eğitim Serisini Okuyun.
Önerilen Kaynaklar
- Maven Nedir - Yeni Başlayanlar İçin Maven Eğitimi
- Selenium ile Gradle Projesi Nasıl Oluşturulur
- Projeleri Oluşturmak, Test Etmek ve Dağıtmak İçin Gradle Nasıl Kullanılır
- Gatling Script ve Maven Archetype Kullanarak Gatling Projesi Oluşturun
- Maven'in Maven Surefire Eklentisini Kullanarak TestNg ile Entegrasyonu
- Maven'de POM (Project Object Model) ve pom.xml Nedir
- Maven'i Eclipse Java IDE ile Yapılandırma
- 31 En Sık Sorulan Maven Röportaj Soruları ve Cevapları