Yeni Başlayanlar İçin En İyi 5 Heyecan Verici Maven Çok Modüllü Proje Fikirleri ve Konuları [2022]
Yayınlanan: 2021-05-27Herhangi bir proje daha karmaşık ve katmanlı hale geldikçe, onu yönetmenin doğru yolu onu farklı modüllere bölmektir. Maven'de, bu çoklu projeleri bağımlılıklar olarak bağlamak mümkün olsa da, inşa sürecini çok daha karmaşık hale getirir. Bu nedenle tercih edilen yaklaşım, projeyi multi-modüler olarak yapılandırmak ve gerisini Maven'e devretmek.
İçindekiler
Maven'de Çoklu Modül Kullanmanın Faydaları
Bağımlılık enjeksiyonu veya başka herhangi bir prosedür yerine çoklu modülleri kullanmanın önemli avantajı, çoğaltmayı azaltmasıdır. Bunu daha iyi anlamak için iki modülden oluşan bir uygulama üzerinde çalıştığınızı varsayalım – diyelim ki arka uç modülü ve ön uç modülü.
Bu modüllerin her ikisi üzerinde çalışıyorsanız ve her iki modülü de etkileyen belirli işlevleri değiştirirseniz, özel bir oluşturma aracı olmadan hem modülleri hem de bileşenleri izole bir şekilde oluşturmanız gerekir. Veya kodu derlemek, testleri çalıştırmak ve nihai sonuçları görüntülemek için bir komut dosyası yazmalısınız.
Şimdi, karmaşıklık daha da artarsa ve projenizde ikiden fazla modül varsa, bu görevi özel bir oluşturma aracı olmadan gerçekleştirmek giderek zorlaşacaktır. Ayrıca, gerçek dünya problemlerinde, projelerinizin tüm yapı yaşam döngüsü boyunca bazı önemli işlemleri gerçekleştirmesi, bağımlılıkları paylaşması veya diğer BOM projelerini içermesi için bazı Maven eklentileri gerektirebilir.
Bu zorlukların bir sonucu olarak, Maven'deki çoklu modüller son derece faydalıdır ve uygulamanın modüllerini tek bir komut satırında oluşturmanıza izin verir. Ayrıca, çok sayıda veriyi ve konfigürasyonu birden çok modül arasında sorunsuz bir şekilde paylaşmanıza olanak tanır.
Ayrıca Okuyun: Maven Mülakat Sorusunun Cevabı
Maven'deki Çok Modüllü Projelerle İlgili Bilinmesi Gereken Temel Terimler
1. Ana POM (Proje Nesnesi Modülü)
Maven'deki her bir pom.xml dosyası - kalıtımı desteklemek için - Süper POM olarak bilinen bir üst POM'a sahiptir. Bu, Maven ikili dosyalarında bulunabilir ve ayrıca Etkili POM'u oluşturmak için iki dosyayı birleştirebilirsiniz.
Böylece, projeniz için ebeveyn olarak hizmet etmek üzere kendi pom.xml dosyanızı oluşturabilirsiniz. Bunu yaptıktan sonra, tüm bağımlılıkları ve yapılandırmayı ekleyebilir, onu alt modüllerin ebeveyni olarak ayarlayabilir ve devralmayı etkinleştirebilirsiniz. Maven, kalıtım dışında toplama da sağlar. Toplama işlevinden yararlanan Ana POM, toplu POM olarak bilinir - bu tür POM, alt modülleri pom.xml dosyasında açıkça bildirir.
2. Alt modüller
Alt modüller olarak da bilinen alt projeler, ana POM'dan devralan standart Maven modülleri olarak anlaşılabilir. Kalıtım kullanarak, modüller çeşitli bağımlılıkları ve konfigürasyonları paylaşır. Ancak, projeyi hızlı bir şekilde oluşturmanız gerekiyorsa, Ana POM'daki alt modülleri açık bir şekilde bildirmeniz ve böylece onu toplu POM yapmanız gerekir.
3. Basit Çoklu Modül Projesi
App ve util, The Simple Multi-Module Project'te bulunan iki modüldür. Util modülü, Apache Commons Lang kitaplığını kullanarak farklı dizeleri birleştirmek veya eklemek için statik bir yöntem sağlamak için gereklidir ve uygulama modülü, util modülünü çağırmak için gereklidir. İşte app.java dosyasından bir pasaj:
basit-çoklu/app/src/main/java/app/App.java
genel sınıf Uygulaması {
public static void main(String[] args) {
System.out.println(new App().greet(“Dünya!”));
}
public String selamlama(String name) {
return Util.join(“Merhaba”, isim);
}
}
Projeyi oluşturmak için çalıştırın
$ cd basit-çoklu
$ mvn temiz testi
Maven'in kod oluşturucusu, projenizin her iki modülünü de doğru sırada oluşturur, gerekli testleri gerçekleştirir ve sonuçları aşağıdaki gibi kolayca anlaşılabilir bir özet biçiminde verir:
4. Çok Modüllü Bir Projenin Yapısı
İşte basit bir Çoklu Modül projesinin düzeni:
Basit çoklu dizin, kök dizindir ve tüm projenin en üstünde bulunur. Üst düzey POM'u (Üst POM) içerir, ancak bu Ana POM'un herhangi bir kaynak klasörü yoktur.
Üst düzey dizin ayrıca, dizinler ve pom.xml dosyası içeren normal Maven projeleri olan app ve util'i de içerir.
Üst düzey POM ve modül POM, normal POM'dan biraz farklıdır. Neler içerdiğine ayrıntılı olarak bakalım:
5. Üst Düzey POM
Kök dizinde Maven Çoklu Modül Projesi için bir Ana POM veya üst düzey bir POM gereklidir.
Üst düzey POM, herhangi bir normal projede olduğu gibi, yapıt kimliği, sürüm ve grup kimliği gibi önemli yönleri ve proje koordinatlarını tanımlar. Ancak bunun için paketleme şekli alışılmış savaş veya kavanoz formatında değil, pom şeklindedir. Bunun nedeni, üst düzey modülün başka bir kaynak dizini içermemesidir. Modüller/modül öğeleri, uygulamayı ve modülleri kullanır.
Bu dosyanın içeriği şunları içerir:
basit-çoklu/pom.xml
<project xmlns=”http://maven.apache.org/POM/4.0.0″ xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=”http://maven.Apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>
<modelVersion>4.0.0</modelVersion>
<groupId>org.codetab</groupId>
<artifactId>basit-çoklu</artifactId>
<sürüm>1.0</sürüm>
<packaging>pom</packaging>
<modüller>
<module>uygulama</module>
<module>util</module>
</modüller>
</proje>
Özetlemek gerekirse, üst düzey POM, pom paketleme türünü belirtir ve tüm alt modülleri açıkça listeler.
Maven listelenen modülleri doğru şekilde sıralamak için bir Reaktör kullandığından, Ana POM'da alt modülleri bildirirken sıralama konusunda endişelenmenize gerek olmadığını unutmayın. Simple-multi'de, maven util modülünü ve ardından uygulama util'e bağlı olduğundan uygulamayı oluşturur.
5. Modül POM
Module POM klasörü, normal bir kaynak klasör ve kendi pom.xml dosyasını içerir. Bu util/pom.xml içeriği:
util/pom.xml
<project xmlns=”http://maven.apache.org/POM/4.0.0″ xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=”http://maven.Apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>
<modelVersion>4.0.0</modelVersion>
<ebeveyn>
<groupId>org.codetab</groupId>
<artifactId>basit-çoklu</artifactId>
<sürüm>1.0</sürüm>
</parent>
<artifactId>util</artifactId>
<özellikler>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</özellikler>
<bağımlılıklar>
<bağımlılık>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<sürüm>3.6</sürüm>
</bağımlılık>
<bağımlılık>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<sürüm>4.12</sürüm>
<scope>test</scope>
</bağımlılık>
</bağımlılıklar>
</proje>
Üst öğeden devralınacakları için modülün grup kimliğini ve sürümünü belirtmeye gerek yoktur. Bağımlılıklar/bağımlılık bloğu, util modülünün - commons-lang3 ve JUnit'in bağımlılıklarını tanımlar.
Şimdi, aşağıda gösterilen bağımlılıklar bloğu dışında, util/pom.xml'e oldukça benzeyen app/pom.xml'e bakalım:
uygulama/pom.xml
….
<bağımlılıklar>
<bağımlılık>
<groupId>org.codetab</groupId>
<artifactId>util</artifactId>
<sürüm>1.0</sürüm>
</bağımlılık>
….
</bağımlılıklar>
App modülü, util modülündeki yöntemleri kullanır ve bunun için app/pom.xml, bağımlılık olarak util'i belirtir.
Yukarıda açıklanan her şeyi özetlemek için:
Üst düzey proje (ana proje),
- Tüm koordinatları ve alt modülleri belirten üst düzey pom.xml'yi tanımlar ve paketleme türünü pom olarak ayarlar.
- Diğer modül klasörlerini içerir.
- Kaynak klasör içermez.
Modül klasörlerinin her biri, normal Maven proje dizinlerinden başka bir şey değildir. Ancak, pom.xml dosyası şunları içerir:
- Üst öğe, modülün üst öğesini belirtir.
- Modül koordinatları, eser kimliği öğesinde belirtilir. Grup kimliği ve sürüm, üst koordinatlardan devralındıkları için belirtilmez.
- Bir modül diğerine bağlıysa, bağımlılık, bağımlılıklar/bağımlılık öğesinde belirtilir.
Çoklu Modül Projesinin Yürütülmesi
$ mvn clean package komutu, çoklu modülü derlemek, test etmek ve paketlemek için kullanılabilir. Ancak, onu maven-exec-plugin ile çalıştırmak için aşağıdaki adımlar gerekir:
Aşağıdaki komutları çalıştırın:
$ cd basit-çoklu
$ mvn temiz kurulum
$ mvn exec:java -pl uygulaması -Dexec.mainClass=app.App
install komutu, modülleri daha sonra projeyi çalıştırabileceğiniz yerel deponuza yükler. -pl app seçeneği, exec eklentisini uygulama modülü hakkında bilgilendirir ve app.App sınıfını çalıştırır. Yükleme olmadan, Maven util modülü bağımlılığını indirip çözemediğinden derleme işlemi başarısız olur.
Ancak, özellikle geliştirme aşamasındayken, her çalıştırmadan önce projeyi yerel bir depoya kurmak oldukça zahmetlidir. Bunu kolaylaştırmak için, kurulum adımını gerçekleştirmeden çoklu modülü Eclipse IDE'de doğrudan çalıştırabilirsiniz.
Dünyanın en iyi Üniversitelerinden çevrimiçi Yazılım geliştirme Kursları öğrenin . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.
Çözüm
Bu makalenin Maven Çoklu Modül sürecine başlamanıza yardımcı olduğunu umuyoruz. Yeni olan her şeyde olduğu gibi, sadece ilk başta onu asmakla ilgili. Temel yapıyı ve işleyişi anladıktan sonra, Maven'de birden fazla modülü sorunsuz bir şekilde yönetme yolunda olacaksınız.
Tam yığın yazılım geliştirme hakkında daha fazla bilgi edinmek istiyorsanız, upGrad & IIIT-B'nin Yazılım Geliştirmede Yönetici PG Programına göz atın – Çalışan profesyoneller için tasarlanmış ve 500+ saatlik zorlu eğitim sunan Tam Yığın Geliştirmede Uzmanlık, 9 + projeler ve görevler, IIIT-B Mezun statüsü, pratik uygulamalı bitirme projeleri ve en iyi firmalarla iş yardımı.
Çoklu modül projeleri nelerdir?
Çoklu modüller, bir proje oluşturmak ve dağıtmak için gereken modül sayısını azaltmak için ortak yapıları tek bir modülde gruplandırmanıza olanak tanır. Çok modüllü projeler, bu modüller arasında bir ebeveyn-çocuk ilişkisi tanımlanarak iki veya daha fazla modülden oluşturulabilir. Çok modüllü bir projenin ana modülüne kök modül denir. Çok modüllü bir projenin alt modülüne alt modül denir. Kök modül, çok modüllü bir yapının temel taşıdır. Alt modüller kendi başlarına oluşturulamazlar, kök modül ile birlikte oluşturulmaları gerekir.
Maven'de proje nesnesi model dosyası nedir?
Proje nesne modeli (POM) dosyası, bir projeyi tanımlayan bir dosyadır. Geliştiricilerin yapıtları bir havuza yayımladığı temel çalışma birimidir. Proje nesne modeli, bir projeyi tanımlayan, bileşenlerini listeleyen ve ne yaptıklarını tanımlayan basit bir metin dosyasıdır. Proje nesne modeli, Maven yazılım proje yönetimi çerçevesinin önemli bir bileşenidir. Bir Maven projesinin oluşturduğu özel bir XML belgesi türüdür. Bir pom dosyası, bir projenin açıklaması olarak düşünülebilir. Maven'e projenin ne hakkında olduğunu ve projedeki modüllerin her birinin tanımını, bağımlılıklarını ve versiyonlarını söyler. Modüller, bir Maven projesinin yapı taşlarıdır. Modüller ve bağımlılıkları, nihai projeyi oluşturmak için kullanılır.
Bir maven çok modüllü proje nasıl oluşturulur?
Bir maven çok modüllü proje yapmak için, bir ana pom tanımlamanız ve tüm alt modüllerin onu miras aldığından emin olmanız gerekir. Ayrıca tüm alt modülleri tek bir havuza koyabileceğinizi ve ana pom'u buna yönlendirebileceğinizi de not etmek önemlidir. Bir maven çoklu modül projesi, bir ana pompa ve bir veya daha fazla alt modülden oluşur. Ana pompa, yapı kimliği, sürüm, paketleme ve bağımlılıklar gibi çok modüllü maven proje meta verilerini tanımlayabilir. Alt modüller, üst öğenin meta verilerini devralabilir ve üst öğe pom, projenin organizasyonu ve açıklaması gibi üst düzey proje yapılandırmasını tanımlayabilir.