what is maven maven tutorial
Bu Maven Tanıtıcı Eğitimi, Maven'in ne olduğunu, Maven'in neden kullanıldığını, Tanımını, Temel Terminolojilerini, Maven Deposu Türlerini vb. Açıklayacaktır:
Bu eğitimde, Maven'i, tanımını, genel bakışını, Maven üzerindeki operasyonel adımları inceleyeceğiz ve Maven'deki temel terminolojileri, Maven tarafından gerçekleştirilen etkinlikleri ve Maven depo türlerini ayrıntılı olarak anlayacağız.
Hadi başlayalım!!
Bu Maven Serisindeki Öğreticiler Listesi
Öğretici 1: Maven Nedir - Yeni Başlayanlar İçin Maven Eğitimi (Bu Eğitici)
Öğretici # 2: Maven'de POM (Project Object Model) ve Pom.Xml Nedir
Öğretici 3: Gradle Vs Maven ve Maven Eklentileri
Eğitim 4: Eclipse ve TestNG ile Maven Bağımlılığı ve Entegrasyonu
Öğretici 5: Projeler İçin Jenkins ve Maven Belgeli Maven
Öğretici # 6: 31 En Sık Sorulan Maven Röportaj Soruları ve Cevapları
Ne öğreneceksin:
Maven nedir
Maven, genellikle Java'da yerleşik çerçevelerde kullanılan bir yapı ve proje yönetimi aracıdır. Apache Software Foundation tarafından geliştirilmiştir. Yidiş dilinden bir kelime olan Maven, 'bilgi toplayıcı' anlamına gelir. Jakarta Türbin Projesinde inşa tetikleme sürecini yapmak için tanıtıldı.
Maven, Proje Nesne Modeli (pom) dosyası tarafından kontrol edilir. Yerleşik Java çerçeveleriyle çalışırken, çoğu zaman bir dizi bağımlılıkla uğraşmak zorunda kalıyoruz.
Maven ortaya çıkmadan önce, JAR dosyalarından başka bir şey olmayan tüm bağımlılıklar çerçevemize manuel olarak eklenmek zorundaydı. Ayrıca, projemizdeki yazılım yükseltmesine de dikkat etmemiz gerekiyordu.
oracle dba performans ayarlama mülakat soruları
Maven, proje JAR'larının ve kitaplıkların otomatik olarak indirilmesini sağlar. Pom .xml dosyasında yalnızca yazılımın sürümleri ve bağımlılık türleri ile ilgili bilgilerin açıklanması gerekir.
Maven, Ruby, C # ve diğer dillerdeki projelerle ilgilenebilir. Projeleri, bunların bağımlılıklarını ve dokümantasyonu oluşturma görevini üstlenir.
Apache Software Foundation tarafından geliştirilen başka bir araç olan ANT, projelerin oluşturulması ve konuşlandırılması için de kullanılıyor. Ancak Maven, ANT'den daha ileridir. ANT gibi, Maven de inşa sürecini basitleştirdi. Kısacası Maven, geliştiricilerin hayatını kolaylaştırdı.
Neden Maven Kullanmalı?
Maven aşağıdaki faaliyetleri gerçekleştirir:
- Bağımlılıkları almak için depo.
- Kuruluş genelinde benzer bir klasör yapısına sahip olmak.
- Jenkins gibi Sürekli Entegrasyon araçlarıyla entegrasyon.
- Test yürütmesi için eklentiler.
- Yazılımın / projenin nasıl geliştirildiği hakkında bilgi sağlar.
- Oluşturma süreci daha basit ve tutarlı hale getirildi.
- Projede izlenecek en iyi uygulamalar için yönergeler sağlar.
- Proje performansını artırır.
- Maven'in yeni özelliklerine geçiş kolay.
- Git gibi sürüm kontrol araçlarıyla entegrasyon.
Maven, sürümler, dağıtım, raporlama, derlemeler, dokümantasyon ve SCM'ler gibi süreçlerle ilgilenir. Maven, Maven Central deposuna bağlanır ve bunları yerel olarak yükler. Maven ile proje geliştirmeyi destekleyen IDE'lerden bazıları NetBeans, Eclipse, IntelliJ ve benzerleridir.
Projelerimizde aşağıdaki senaryolarda Maven kullanılmalıdır:
- Proje çok sayıda bağımlılık gerektiriyorsa.
- Bağımlılıkların sürümünün sık sık yükseltilmesi gerekiyorsa.
- Projenin hızlı dokümantasyona, kaynak kodun JAR veya ZIP dosyalarına derlenmesine ve paketlenmesine ihtiyacı varsa.
Maven'in Operasyonel Adımları
# 1) İlk olarak Maven, POM .xml dosyasından geçer.
#iki) Bağımlılıklar yerel depoya yüklenir.
# 3) Aşağıda gösterildiği gibi Maven'in yerleşik yaşam döngülerinden geçer:
- Varsayılan: Projenin konuşlandırılmasıyla ilgilenir.
- Temiz: Hataları ortadan kaldırır, böylece projeyi temizler ve önceki yapı sürecinden üretilen yapıyı kaldırır.
- Site: Projenin dokümantasyonuyla ilgilenir.
# 4) Her yerleşik döngünün birkaç aşaması vardır. Örneğin, varsayılan yirmi üç aşamaya sahipken, temiz ve site sırasıyla üç ve dört aşamaya sahiptir.
# 5) Her Maven döngüsü, belirli bir aşamanın belirli bir hedefe sahip olduğu birkaç aşamadan geçer.
Önemli aşamalardan bazıları aşağıda listelenmiştir:
- Doğrula: Derlemenin tamamlanması için tüm önkoşul verilerinin mevcut olup olmadığını doğrular.
- Derleyin: Kaynak kodu derlendi.
- Test derleyin: Test kaynak kodu derlendi.
- Ölçek: Birim test senaryoları yürütülür.
- Paket: Kaynak kodu derlenir ve JAR veya ZIP dosyalarına paketlenir.
- Entegrasyon testi: Paket dağıtılır ve herhangi bir sorun varsa entegrasyon test durumları yürütülür.
- Kurulum paketi: Yerel depoya kurulur.
- Dağıtmak: Paketin bir kopyası uzak depodan sağlanır.
Bu aşamaların sırayla yürütülmesi gerekir. Ayrıca, dağıtmak aşama, yani Maven döngüsünün son aşaması yürütülmeli, ardından o döngünün tüm önceki aşamaları başarıyla tamamlanmalıdır.
Komut isteminden aşamalar şu şekilde çalıştırılır:
mvn , Örneğin, mvn doğrulamak
c - c ++ sözdizimi
# 6) Bir grup Maven hedefi bir aşamayı oluşturur. Tıpkı Maven'in aşamaları gibi, her hedefin belirli bir sırada çalıştırılması gerekir.
Bir hedef aşağıdaki sözdizimine sahiptir:
Eklenti: hedef
Burada, bunlara bağlı hedeflerle birlikte bazı aşamaları tartıştık:
- derleyici: derleme (derleme aşamasında kullanılır)
- derleyici: test (test derleme aşamasında kullanılır)
- surefire: test (test aşamasında kullanılır)
- install: install (kurulum aşamasında kullanılır)
- kavanoz: savaş (paketleme aşamasında kullanılır)
- savaş: savaş (paketleme aşamasında kullanılır)
Maven'in nasıl çalıştığına ilişkin operasyonel adımlar aşağıda şematik olarak gösterilmiştir:
Maven'deki Terminolojiler
- POM : Proje Nesne Modeli anlamına gelir. Proje hakkında bilgi, projede bulunan bağımlılıklar, kaynak dosyanın dizini, eklenti bilgileri vb. İçeren bir XML dosyasıdır. Bunlar, Maven'in projeyi tamamen inşa etmesi için gerekli verilerdir. Maven, tüm bu bilgileri almak için pom dosyasını okur.
Eclipse IDE'de POM XML dosyasından bir kod parçacığı içeren Maven projesi aşağıda gösterilmiştir.
- Grup kimliği : Projemizi tüm projelerden benzersiz bir şekilde tanır. GroupId, pom dosyasının bir parçasıdır. Genellikle proje grubu için bir kimlik olarak söylenir.
- Yapı Kimliği : Maven deposuna dağıtılan bir jar dosyası. ArtifactId, pom dosyasının bir parçasıdır. Genellikle projemizin kimliği ve adı olarak söylenir.
- Sürüm : Projenin jar versiyonunu belirtir. Sürüm ayrıca pom dosyasının bir parçasıdır.
Yukarıdaki görselde gösterildiği gibi bunu görebiliriz ve etiketler proje için tanımlanan bağımlılıkların bir kısmını oluşturur.
- Maven Merkezi Depo : Bu, projeyi oluşturmak için Maven tarafından gereken kavanozların, kitaplıkların, eklentilerin ve yapılandırma verilerinin bulunduğu yer tutucudur.
Projemize Selenium bağımlılıkları eklemek istiyorsak pom dosyasına aşağıdaki kod parçacığını eklememiz gerekir.
org.seleniumhq.selenium selenium-java 4.0.0-alpha-5
Maven merkezi deposunda kaldırılan birden fazla projeden, groupId yardımıyla Selenium'u tanımlar. Benzer şekilde ArtifactId, groupId altındaki bir alt proje gibidir.
Örneğin, Selenyum kodu Java, C # ve benzeri diller tarafından desteklenir. Burada, artifactId'den sadece Java ile ilişkili JAR'lara bağlandığımız açıktır. Ayrıca projeyle ilişkilendirilecek JAR sürümü de bağımlılıkların bir parçasıdır.
Bu üç bilgiyi sağlayarak Maven deposunda kendi projemizi de yayınlayabiliriz.
Maven Deposu
Maven Deposu üç tipte olabilir:
- Yerel Depo
- Uzak Depo
- Merkezi depo
Maven bağımlılıkları POM dosyasından okuduktan sonra, bunları önce yerel depoda, ardından merkezde ve son olarak uzak depoda arar. Üç deponun hiçbirinde bağımlılıklar bulunmazsa, kullanıcıya bir hata bildirilir ve işlem durdurulur.
# 1) Maven Yerel Deposu
Yerel depo yerel sistemimizde bulunur - çoğunlukla .m2 Maven sistemimize kurulduğunda varlığını gösteren (C: / Users / superdev /.m2) dizini ve bir Maven komutunu başarıyla çalıştırmayı başardık.
Bu konumu settings.xml'de (MAVEN_HOME / conf /settings.xml), localRepository etiket.
Xml kod pasajının altında, yerel deponun konumlarının nasıl değiştirileceği gösterilmektedir:
C: Maven m2 # 2) Maven Merkezi Depo
Merkezi depo Apache Maven grubu tarafından geliştirilmiştir ve web'de barındırılmaktadır. Bu, merkezi depo olarak kabul edilir ve tüm ortak kitaplıklara sahiptir. Yerel bir depo gibi, varsayılan olarak indirilecekleri konumu setting.xml'yi değiştirerek değiştirebiliriz.
# 3) Maven Uzak Depo
Uzak veri havuzu da web üzerinde barındırılır. Bazı senaryolarda, bir şirket kendi uzak deposunu geliştirebilir ve özel projelerinde dağıtımlar gerçekleştirebilir. Bunlar söz konusu şirkete ait olacak ve yalnızca şirket içinde çalıştırılabilecektir.
Uzak depo, merkezi depo gibi benzer çalışma modellerine sahiptir. Bu depolardan herhangi bir bağımlılık veya konfigürasyon gerektiğinde, bunlar önce yerelimize indirilecek ve sonra kullanılacaktır.
İd ve url ile uzak depo için örnek bir xml kodu aşağıda gösterilmiştir.
com.src.repository http://maven.comp.com/maven2/
Sonuç
Maven'in ne olduğu, neden Maven'i kullandığımız, Maven üzerindeki operasyonel adımlar, Maven döngüleri, Aşamalar, Hedefler, Maven'deki Temel terminolojiler ve Maven depolarının Türleri hakkında net bir fikre sahip olduğunuzu umuyoruz.
Bir sonraki eğitimimizde, Maven'de bir projenin nasıl oluşturulacağını, Maven için ayarlanan ortamı ve diğer birçok ilgili konuyu keşfedeceğiz.
Önerilen Kaynaklar
- Maven'in Maven Surefire Eklentisini Kullanarak TestNg ile Entegrasyonu
- AWS CodeBuild Eğitimi: Maven Build'tan Kod Çıkarma
- Maven'i Eclipse Java IDE ile Yapılandırma
- Maven'de POM (Project Object Model) ve pom.xml Nedir
- Gradle Vs Maven ve Maven Eklentileri
- Projeler İçin Jenkins ve Maven Belgeli Maven
- 31 En Sık Sorulan Maven Röportaj Soruları ve Cevapları
- Eclipse ve TestNG ile Maven Bağımlılığı ve Entegrasyonu