%50 indirim tüm planlarda, sınırlı süre. Başlangıç fiyatı $2.48/mo
18 dakika kaldı
Web ve İş Uygulamaları

Maven'de Ustalaşmak: Verimli Geliştirme için Kapsamlı Komutlar, Seçenekler ve Hızlı Başvuru Rehberi

Ada Sevgigüzel By Ada Sevgigüzel 18 dakika okuma 23 Şubat 2025'te güncellendi
mvn komutları rehberi

Otomasyon ve geliştirme araçları, bir projenin en kritik bileşenleri arasında yer alır. Bu yazıda Maven'i ele alıyoruz. Maven, Java projeleri için güçlü bir otomasyon aracıdır. Build sürecini basitleştirir ve projeler için tutarlı bir yapı oluşturur; bu da projelerin yönetilmesini ve anlaşılmasını kolaylaştırır. Bu rehber Maven dünyasını geniş bir perspektiften ele alarak geliştirme iş akışınızı hızlandıracak pek çok komut ve seçeneği kapsamaktadır. Server & Container Management, Source Control Management (SCM) ve artifact imzalama için GPG gibi konuların yanı sıra Plugin Management, Assembly & Distribution ile proje site ve rapor oluşturma komutlarını da inceliyoruz. Rehberin sonunda Maven hakkında kapsamlı bir anlayışa sahip olacaksınız. Maven komutları ve seçenekleri.

Maven'e genel bakış; Proje Yaşam Döngüsü

Yidce'de Maven kelimesi "bilgi birikimcisi" anlamına gelir. Bu anlam, Maven'in Java projeleri için bir otomasyon aracı olarak ne kadar güçlü olduğunu gayet iyi özetler. Maven, derleme sürecini ve proje yönetimini büyük ölçüde basitleştirir. Bunu, çeşitli görevleri otomatikleştirerek ve tutarlı bir derleme sistemi sunarak başarır.

Maven'in nasıl çalıştığını daha iyi anlamak için şu kavramı inceleyelim: Proje Nesne Modeli (POM). POM, proje hakkındaki bilgileri ve yapılandırma ayrıntılarını içeren bir XML dosyasıdır. Maven, POM'u çalışmasının temeli olarak kullanır. Yani Maven; projenin bağımlılıklarını, derleme dizinini, kaynak dizinini, test kaynak dizinini ve hedefleri bu dosyadan alarak çalışır.

Projeyi ve bağımlılıklarını pom.xmldosyasında tanımladıktan sonra, bir Maven komutu çalıştırdığınızda Maven, o komuta karşılık gelen derleme aşamasını yürütmek için pom dosyasını okur. Projeyi oluşturduğunuz andan fiilen dağıtıma hazır hale getirdiğinize kadar uzanan uzun bir proje yaşam döngüsü vardır. Bu döngü, projenizin geçmesi gereken aşamaların sırasını tanımlar. Her aşama, yaşam döngüsündeki bir adımı temsil eder ve kaynak kodu derleme, testleri çalıştırma ve kodu dağıtılabilir bir biçimde paketleme gibi belirli görevleri yerine getirir. Tüm bunlar, Maven'in proje yaşam döngüsünü anlaşılması gereken önemli bir kavram haline getirir. Şimdi Maven'in yaşam döngüsü aşamalarına daha yakından bakalım:

  1. Doğrula: Bu aşamada projenin doğru yapılandırıldığı ve gerekli tüm bilgilerin mevcut olduğu doğrulanır.
  2. Derle: Bu aşamada projenin kaynak kodu derlenir.
  3. Test: Bu aşamada derlenen kaynak kodu, uygun bir birim test çerçevesi kullanılarak test edilir.
  4. Paket: Bu aşamada derlenen kod, dağıtılabilir biçimine (ör. JAR, WAR) paketlenir.
  5. Yükle: Kurulum aşamasında paket, yerel depoya yüklenir ve aynı makinedeki diğer projeler tarafından kullanılabilir hale gelir.
  6. Dağıt: Bu aşamada son paket, diğer geliştiricilerle ve projelerle paylaşılmak üzere uzak depoya kopyalanır.

Bu aşamaların her birinin karşılık gelen bir mvn komutu vardır; bunları maven cheatsheet'imizin ilerleyen bölümlerinde ele alacağız. Projenizin derleme sürecini yönetmek için kullanacağınız en temel komutlar bunlar olacaktır.

Bağımlılık Yönetimi

Maven'in temel özelliklerinden biri bağımlılık yönetimidir. Bu özellik, proje bağımlılıklarını yönetmeyi kolaylaştırdığı için Maven'in performansı açısından kritik bir öneme sahiptir.

Maven Bağımlılıkları Nasıl Yönetir?

Maven, merkezi bir depo kullanır. Bu depo, Maven Merkezi Deposuolarak bilinir ve çok sayıda kütüphane ile eklenti burada barındırılır. Bir proje bağımlılık gerektirdiğinde, Maven gerekli kütüphaneleri merkezi depodan otomatik olarak indirir ve yerel depoya kaydeder. Yerel depo, makinenizde tutulan bir önbellek görevi görür ve sonraki derlemelerde indirme sürelerini kısaltır.

Maven'daki bağımlılıklar, pom.xml dosyasındaki <dependencies> bölümünde tanımlanır. Her bağımlılık, bir koordinat grubuyla belirtilir: groupId, artifactIdve version.

Bağımlılık Kapsamları

Maven'da bağımlılıklar için kapsam belirleyebilirsiniz. Bu kapsam, bağımlılığın classpath görünürlüğünü ve yapı yaşam döngüsünün hangi aşamasında gerekli olduğunu tanımlar. Yaygın kullanılan kapsamlar şunlardır:

  • Derle: Varsayılan kapsamdır ve hiçbir kapsam belirtilmediğinde uygulanır. Bu kapsamdaki bağımlılıklar tüm derleme aşamalarında kullanılabilir ve son pakete dahil edilir.
  • Sağlanan: Bu kapsamdaki bağımlılıkların çalışma ortamı tarafından sağlanması beklenir. Derleme sırasında kullanılırlar, ancak son pakete dahil edilmezler.
  • Çalışma Zamanı: Bu bağımlılıklar derleme için gerekmez; yalnızca çalışma zamanında gereklidir. Runtime classpath'e dahil edilirler.
  • Test: Bu bağımlılıklar yalnızca testlerin derlenmesi ve çalıştırılması için gereklidir. Runtime veya son pakete dahil edilmezler.
  • Sistem: System kapsamı, provided kapsamına benzer; ancak Maven'ın kullanacağı JAR dosyasını sizin sağlamanız gerekir. Bu JAR dosyasının sistem yolunda mevcut olması zorunludur.

Geçişli Bağımlılıklar

Maven'ın güçlü özelliklerinden biri, geçişli bağımlılıkları otomatik olarak yönetebilmesidir. Bir proje bir bağımlılık tanımladığında, Maven yalnızca o bağımlılığı değil, onun bağımlılıklarını, bu bağımlılıkların bağımlılıklarını ve bu zincir devam ettiği sürece tüm bağlantılı paketleri otomatik olarak dahil eder. Bu zincir yapı, geçişli bağımlılıklar olarak adlandırılır. Örneğin, projeniz spring-boot-starter-web'e bağımlıysa, Maven Spring Core, Spring MVC ve Jackson gibi spring-boot-starter-web'in bağımlı olduğu tüm kütüphaneleri de otomatik olarak projeye ekler.

Maven'ın bağımlılık yönetimini teoride nasıl ele aldığını öğrendiniz. Şimdi bunu pratikte nasıl kullanacağınıza bakalım:

mvn dependency:resolve

Bu komut, projeniz için gereken tüm bağımlılıkları çözümler ve listeler. Projenizin hangi kütüphanelere bağımlı olduğunu görmek ve her şeyin doğru olduğunu doğrulamak için kullanabilirsiniz.

mvn dependency:tree

Bu komut, proje bağımlılıklarınızı ağaç yapısında gösterir. Her bağımlılığın diğerleriyle ilişkisini ortaya koyar ve olası çakışmaları tespit etmenizi kolaylaştırır.

mvn dependency:analyze

Bu komut, projenizin bağımlılıklarını analiz ederek kullanılmayan paketleri bulur. Projenizi temiz tutmanıza ve gereksiz bağımlılıklardan arındırmanıza yardımcı olur.

Maven'ın bağımlılık yönetimi özellikleri geliştirme sürecinizi kolaylaştırır. Sık yapılan hatalardan kaçınmanızı sağlar ve projenizin düzenli bir yapıda kalmasına yardımcı olur.

Uygulama

Maven'da çalıştırma işlemi, proje içindeki belirli görevlerin veya hedeflerin yürütülmesini kapsar. Bu görevler, Java programlarını çalıştırmaktan harici betik ve komutları yürütmeye kadar geniş bir yelpazeyi içerir. Maven, bu işlemleri kolaylaştırmak için güçlü eklentiler sunar. Bu özellik, Maven'ı proje iş akışınızın farklı bölümlerini otomatikleştirmek için etkili bir araç haline getirir. Temel Maven çalıştırma komutlarına göz atalım:

mvn exec:java

Bu komut, projenizdeki bir Java sınıfını çalıştırmak için kullanılır. Ana sınıfları çalıştırmak veya bağımsız Java programlarını paketlemeden test etmek istediğinizde oldukça kullanışlıdır.

mvn exec:exec

Bu komut, Maven ortamı içinden herhangi bir harici program veya betik çalıştırmanızı sağlar. Yapı sürecinizin parçası olan shell betiklerini, harici araçları veya diğer programları çalıştırmak için kullanabilirsiniz.

Maven'daki çalıştırma komutları, tekrarlayan görevleri otomatikleştirmenize yardımcı olur. Harici araçları ve betikleri Maven yapı yaşam döngüsüne entegre etmek için de kullanılabilirler. Genel olarak görevlerinizi çok daha verimli bir şekilde yönetmenizi sağlarlar.

Sunucu ve Container Yönetimi

Sunucu ve konteyner yönetimi, web uygulamalarının geliştirilmesi ve dağıtımında kritik bir aşamadır. Maven, güçlü eklentileri sayesinde web uygulamalarını çeşitli sunucu ve konteynerler üzerinde doğrudan yapı sürecinizden çalıştırmanıza, dağıtmanıza ve yönetmenize olanak tanır. Sunucu ve konteyner yönetimi için kullanışlı Maven komutları şunlardır:

mvn tomcat7:run

Bu komut, web uygulamanızı Apache Tomcatüzerinden çalıştırır. Yerel geliştirme ve test süreçleri için oldukça kullanışlıdır; tam bir sunucu ortamı kurmadan web uygulamanızı hızlıca dağıtıp test etmenizi sağlar.

mvn jetty:run

Bu komut, web uygulamanızı aşağıda belirtilen popüler web sunucusu aracılığıyla çalıştırır: Jetty. Tomcat gibi Jetty de hafif yapısı ve hızlı dağıtım özellikleri sayesinde geliştirme ve test süreçleri için oldukça uygundur.

Sunucu ve Container Yönetimi Nasıl Çalışır?

Maven, tomcat7-maven-plugin ve jetty-maven-plugin gibi eklentiler aracılığıyla sunucu işlemlerini yönetir. Bu eklentiler, derleme yaşam döngüsünün bir parçası olarak sunucuları başlatmanıza, durdurmanıza ve yapılandırmanıza olanak tanır. Böylece web uygulamalarını tutarlı bir ortamda geliştirmek ve test etmek çok daha kolaylaşır. Farklı ortamlar için sunucu yapılandırmalarını Maven profilleriyle tanımlamak, geliştirme, test ve üretim ortamlarına özgü ayarları ayrı ayrı yönetmenizi sağlar. Maven'ın bu özelliği, sunucu eklentileri içinde loglama ve izleme yapılandırması da yapmanıza imkân tanır. Bu sayede sunucu etkinliklerini takip edebilir ve sorunları hızla tespit edebilirsiniz.

SCM (Kaynak Kontrol Yönetimi)

Her geliştirme projesinin kritik bir bileşeni Kaynak Kontrol Yönetimi'dir (SCM). Geliştirme ekipleri, kaynak kodundaki değişiklikleri zaman içinde yönetmek için SCM'e ihtiyaç duyar. Maven, Git, Subversion ve diğer SCM sistemleriyle etkileşim kurmak için bir dizi komut sunar. Bu komutlar; kod gönderme, kod alma ve proje sürümlerini güncelleme gibi çeşitli görevleri otomatikleştirebilir. Temel Maven SCM komutları ve seçeneklerinden bazıları şunlardır:

mvn scm:checkin

Bu mvn komutunu kullanarak projedeki değişiklikleri SCM'e gönderebilirsiniz. Komut, değişiklikleri kaynak kontrol deposuna işleme sürecini otomatikleştirir. Böylece en güncel güncellemelerin kaydedildiğinden ve ekiple paylaşıldığından emin olabilirsiniz.

mvn scm:checkout

Bu Maven komutu, projenin kodunu SCM deposundan almak için kullanılır ve projenin yerel bir kopyasını edinmek açısından oldukça kullanışlıdır. Bu sayede her zaman kaynak kodun en güncel sürümüyle çalıştığınızdan emin olursunuz.

mvn scm:update

Bu mvn komutu, projenin yerel çalışma kopyasını SCM deposundaki en son değişikliklerle günceller. Komutun amacı, yerel kod tabanınızın depodaki içerikle eşzamanlı olmasını ve diğer ekip üyelerinin yaptığı yeni değişiklikleri kapsamasını sağlamaktır.

mvn scm:status

Bu mvn komutu, yerel çalışma kopyasının SCM deposuna göre durumunu gösterir. Başka bir deyişle, yerel ortamda yapılmış ancak henüz depoya işlenmemiş tüm değişiklikleri listeler.

mvn scm:tag

Bu komut, SCM deposunda bir etiket oluşturmak için kullanılır. Etiketler, sürümler veya önemli kilometre taşları gibi proje tarihindeki belirli noktaları işaretler.

Maven SCM komutları, proje kaynak kodunuzu yönetme sürecini önemli ölçüde kolaylaştırabilir. Bu komutları öğrenmek ve etkin biçimde kullanmak, geliştirme ekibiniz içindeki verimliliğinizi ve iş birliğinizi artırır.

GPG (GNU Gizlilik Koruyucusu)

GNU Privacy Guard (GPG), kullanıcıların veri ve iletişimleri şifrelemesine ve imzalamasına olanak tanıyan bir şifreleme yazılımıdır. Maven bağlamında GPG, yapıtların özgünlüğünü ve bütünlüğünü doğrulamak amacıyla bunları imzalamak için kullanılır. Herkese açık depolara yapıt dağıtırken bu adım kritik önem taşır; kullanıcılar yapıtların değiştirilmediğini bu sayede doğrulayabilir. Maven, GPG ile çalışmak ve proje yapıtlarınızı imzalayıp dağıtma sürecini kolaylaştırmak için çeşitli komutlar sunar. Bu komutlardan bazılarına örneklerle bakalım:

mvn gpg:sign

Bu Maven komutunu kullanarak projenin yapıtlarını GPG ile imzalayabilirsiniz. Yapıtları imzalamak, başkalarının bunları doğrulayabilmesini sağlar ve bir güvenlik ile güven katmanı ekler. Bu komut genellikle derleme sürecinde JAR, WAR ve diğer yapıt türlerini dağıtım öncesinde imzalamak için kullanılır.

mvn gpg:sign-and-deploy-file

Bu mvn komutu, bir dosyanın imzalanması ve dağıtılmasını tek bir adımda gerçekleştirir. Bir yapıtı imzalayıp hemen bir depoya dağıtmak istediğinizde kullanabilirsiniz. Bu yaklaşım süreci kısaltır ve imzalama ile dağıtımın tutarlı biçimde yapılmasını sağlar.

GPG imzalamayı Maven derleme sürecinize dahil etmek, yazılımınızın güvenliğini ve güvenilirliğini artırır. Böylece kullanıcıların yapıtlarınıza güvenmesi ve bunları doğrulaması kolaylaşır.

Sürüm Yönetimi

Sürüm yönetimi yazılım geliştirme sürecinin önemli bir parçasıdır. Etkili bir sürüm yönetimiyle yazılım sürümlerinin doğru biçimde yönetildiğinden, paketlendiğinden ve dağıtıldığından emin olabilirsiniz. Maven, sürüm sürecini otomatikleştirmek ve düzenlemek için bir dizi komut sunar. Sürüm yönetimine yönelik Maven seçeneklerine ve komutlarına örneklerle bakalım:

mvn release:prepare

Bu mvn komutu, projeyi bir sürüme hazırlamak için kullanılır. İşlenmemiş değişiklik olup olmadığını kontrol etme, pom.xml dosyalarındaki sürüm numaralarını güncelleme, sürümü kaynak kontrol yönetimi (SCM) sisteminde etiketleme ve pom.xml dosyalarını bir sonraki geliştirme sürümüne güncelleme gibi görevleri yerine getirir. Projenin kararlı bir durumda ve sürüme hazır olduğundan emin olur.

mvn release:perform

Bu komut, asıl sürüm sürecini çalıştırır. release:prepare komutuyla oluşturulan etiketten projeyi SCM üzerinden alır, projeyi derler ve yapıtları belirtilen depoya dağıtır. Bu komut, yapıtların sürüm hazırlığı anındaki kod durumuyla birebir aynı şekilde derlenmesini sağlar.

mvn release:clean

Bu mvn komutu, release:prepare süreci sırasında oluşturulan tüm sürüm tanımlayıcı yedek dosyalarını kaldırır. Ortamı temizler ve önceki sürüm denemelerinden kalan dosya kalmamasını sağlar. Bu komut sayesinde temiz bir çalışma alanına kavuşur ve sonraki sürümlerde olası sorunların önüne geçersiniz.

Sürüm yönetimi komutlarını kullanmak, sürüm süreçlerini kolaylaştırır, yazılım kalitesini artırır ve sürümlerin etkin biçimde yönetilmesini sağlar.

Arketip

Önceden tanımlanmış şablonlara dayalı proje yapıları oluşturmak isteyen bir geliştirici olarak Maven Archetype eklentisini kullanmayı düşünebilirsiniz. Bu yazıda, archetype'larla ilişkili temel Maven komutlarını ele alacağız.

mvn archetype:generate

Mevcut bir şablondan ("archetype") yeni bir proje oluşturmak için bu mvn komutunu kullanabilirsiniz. Komut, kullanıcıya bir archetype seçme ve yeni projeyi yapılandırma sürecinde rehberlik eder. Bu sayede düzgün yapılandırılmış bir proje kurmanıza yardımcı olur.

mvn archetype:catalog

Bu komut, yeni proje oluşturmak için kullanılabilecek mevcut archetype'ları listeler. Maven topluluğunun sunduğu çeşitli şablonları keşfetmek ve projenize en uygun archetype'ı belirlemek için kullanışlıdır.

Bu iki Maven komutunu kullanarak hızlıca yeni bir projeye başlayabilirsiniz. Basit bir Java uygulaması ya da karmaşık bir kurumsal proje geliştiriyor olun, Maven archetype'ları sağlam bir başlangıç noktası sunar.

Eklenti Yönetimi

Maven eklentileri, geliştiricilerin Maven'ın işlevselliğini genişletmesine ve derleme yaşam döngüsü içindeki çeşitli görevleri otomatikleştirmesine olanak tanır. Eklentileri etkin biçimde yönetmek, projenizin bakımının kolay kalmasını ve derlemelerin tekrarlanabilir olmasını sağlar. Bu bölümde temel Maven eklenti yönetimi komutlarını ele alacağız.

mvn plugin:download

Bu komut, belirli bir Maven eklentisini depodan indirmek için kullanılır. Başka Maven komutlarını çalıştırmadan önce belirli bir eklentinin yerel deponuzda mevcut olduğundan emin olmak istediğinizde kullanabilirsiniz.

mvn plugin:help

Bu Maven komutu, belirli bir Maven eklentisi hakkında ayrıntılı bilgi ve belgeler görüntüler. Bir eklenti için mevcut hedefleri, parametreleri ve yapılandırma seçeneklerini anlamanız gerektiğinde kullanabilirsiniz.

Bu Maven eklenti yönetimi komutları, derleme sürecini iyileştirir, iş akışlarını otomatikleştirir ve proje kalitesiyle tutarlılığının yüksek standartlarda kalmasını sağlar.

Montaj & Dağıtım

Maven'ın paket oluşturma ve dağıtım işlevselliği, geliştiricilerin projelerini dağıtım için farklı formatlarda paketlemesine olanak tanır. Çalıştırılabilir JAR dosyaları, bağımlılıkları ve diğer kaynakları içeren paketlenmiş uygulamalar ya da özel dağıtımlar oluşturmak için bu komutları kullanabilirsiniz. Burada, paket oluşturma ve dağıtım için temel Maven komutlarını ele alacağız.

mvn assembly:assembly

Bu komut, proje için bir assembly oluşturur. Assembly; binary dosyaları, kaynak kodu, bağımlılıkları ve diğer kaynakları içerebilen, dağıtıma hazır bir pakettir. Komut, sağlanan assembly tanımlayıcısına göre bu paketleri oluşturmak için Assembly Plugin'i kullanır.

mvn assembly:directory

Bu mvn komutu, arşiv dosyasını oluşturmadan assembly'nin dizin yapısını hazırlar. Paketlemeden önce assembly'nin içeriğini ve yapısını test edip doğrulamak için kullanışlıdır.

Maven'ın paket oluşturma ve dağıtım komutlarını öğrenmek, uygulamalarınızı paketleme ve dağıtma süreçlerinde size büyük kolaylık sağlayabilir.

Site Oluşturma Komutları

Maven'ın site komutları, projeleri belgelemenin pratik bir yoludur. Bu komutlar, projeleriniz için kapsamlı dokümantasyon siteleri oluşturur. Burada temel site komutlarını ve işlevlerini ele alacağız:

mvn site

mvn site komutu, proje özeti, bağımlılık raporları, eklenti kullanımı ve daha fazlası gibi bilgileri içeren projenin site belgelerini oluşturur.

mvn site:deploy

Oluşturulan siteyi uzak bir sunucuya dağıtmak için bu komutu kullanabilirsiniz. Belgeleri takım üyeleri veya kamuoyu gibi daha geniş bir kitleye açmak istediğinizde bu komut işe yarar.

mvn site:stage

Bu komut, siteyi yerel bir dizine hazırlar. Uzak sunucuya dağıtmadan önce siteyi yerel ortamda önizlemek için kullanabilirsiniz.

Bir projede düzenli ve anlaşılır dokümantasyon son derece önemlidir. Maven site komutu, her şeyi bir arada tutmanıza ve geliştirme ekipleri arasındaki iletişimi güçlendirmenize yardımcı olur.

WAR ve JAR Komutları

Bir geliştirici olarak, uygulamaları farklı formatlarda paketleyebilmenin geliştirme sürecindeki önemini kesinlikle biliyorsunuzdur. Maven, Java uygulamalarını WAR (Web Application Archive) ve JAR (Java Archive) dosyaları dahil çeşitli formatlarda paketlemenize olanak tanır. Bu paketleme formatlarının önemi, uygulamaları sunuculara dağıtmak ve kütüphaneleri paylaşmak istediğinizde netleşir. Burada WAR ve JAR dosyaları oluşturmaya yönelik temel mvn komutlarını ele alacağız:

mvn war:war

Bu komut, projenizi derler ve bir WAR dosyası olarak paketler. Komutu çalıştırdığınızda Maven, projenizin target dizininde bir WAR dosyası oluşturur.

mvn jar:jar

Bu komut, projenizi derler ve projenizin target dizininde bir JAR dosyası olarak paketler.

Bu iki komut, dağıtım ve paylaşım süreçlerinde işinizi kolaylaştırır. Java uygulamalarınızı etkin biçimde yönetmek ve dağıtmak için kullanabilirsiniz.

Raporlama

Her yazılım projesinde ilerlemeyi takip etmek için ayrıntılı raporlamaya ihtiyaç vardır. Maven, çeşitli rapor türleri oluşturmak için güçlü eklentiler ve mvn komutları sunar. Bu bölümde raporlama için kullanabileceğiniz iki Maven eklentisini ele alacağız: Surefire ve JaCoCo.

Surefire Eklentisi

Bu eklentiyi bir Maven projesinde birim testlerini çalıştırmak için kullanabilirsiniz. Çalıştırılan testler hakkında ayrıntılı raporlar oluşturarak kodun beklediğiniz şekilde davrandığından emin olmanızı sağlar.

mvn surefire-report:report

Bu komut, okunması ve analiz edilmesi kolay bir birim test raporu oluşturur. Komutla Maven, projenizin target/site dizininde bir HTML raporu oluşturur. Bu rapor; çalıştırılan, geçen ve başarısız olan testlerin sayısına ilişkin bilgilerin yanı sıra her başarısızlık için ayrıntılı yığın izlerini içerir.

JaCoCo Eklentisi

Bu eklentiyi, birim testlerinin kod kapsamını ölçmek ve raporlamak için kullanabilirsiniz. Böylece testlerinizin kod tabanını yeterince kapsayıp kapsamadığını doğrulayabilirsiniz.

mvn jacoco:report

Kodun hangi bölümlerinin test edildiğini, hangilerinin edilmediğini görmek istiyorsanız bu komut size bir kod kapsam raporu üretir. Komutun oluşturduğu rapor, HTML formatında olup şu dizinde yer alır: target/site/jacoco Bu dizindeki rapor; sınıflar, metodlar ve kod satırları için ayrıntılı kapsam metriklerini gösterir.

Bu iki eklenti, test sonuçlarını ve kod kapsamını takip etmenizi sağlar; kod tabanınızın sağlığı ve kalitesi hakkında somut veriler sunar.

Özelleştirme Oluştur

Maven, projenizin gereksinimlerine göre derleme sürecini özelleştirmenize olanak tanır. Bu bölümde, derlemeyi özelleştirmek için Maven profillerini ve özellik tanımlamalarını nasıl kullanacağınızı ele alacağız.

Maven Profilleri

Maven profilleri sayesinde projeniz için farklı yapılandırmalar tanımlayabilir; bu yapılandırmaları sistem özellikleri, ortam değişkenleri veya özel koşullar gibi farklı faktörlere göre etkinleştirebilirsiniz. Bu sayede derleme sürecini geliştirme, test ve üretim gibi farklı ortamlara göre uyarlayabilirsiniz. Profilleri, pom.xml dosyasındaki <profiles> bölümünde tanımlayabilirsiniz. Ardından -p seçeneğinin yanına profil ID'sini ekleyerek ilgili profili etkinleştirebilirsiniz.

Özellik Tanımları

Maven özellikleri, tüm pom.xml dosyasında yeniden kullanabileceğiniz değerler tanımlamanızı sağlar. Bu özellikler pom.xmlbölümünde, komut satırı üzerinden veya harici özellik dosyalarında belirtilebilir. Özellikleri <properties> bölümünüz pom.xmlbölümünde tanımladıktan sonra bunları pom.xml dosyasıyla basit kurulum.

Maven'da derleme sürecini özelleştirmek, projenizi farklı ortamlara ve gereksinimlere uyarlamanıza yardımcı olur. Profiller sayesinde farklı derleme yapılandırmaları arasında geçiş yapabilir, özellikler sayesinde ise değerleri verimli bir şekilde yönetip yeniden kullanabilirsiniz.

Sonuç

Bu blog yazısı, Maven'a kapsamlı bir giriş sunarak bir Java uygulaması geliştirme sürecinin her adımını adım adım anlattı. Java projeleri için güçlü bir otomasyon aracı olan Maven, geliştirme sürecinin her aşaması için farklı komutlar ve özellikler sunar. Bu komutlara hakim olmak, geliştirme sürecinizin kalitesini doğrudan artırır.

SSS

Maven ne için kullanılır?

Maven, Java projeleri için bir derleme otomasyonu ve proje yönetim aracıdır. Derleme sürecini basitleştirir, proje bağımlılıklarını yönetir ve standart bir proje yapısı sağlar. Maven ayrıca proje dokümantasyonunu, raporlamayı ve dağıtımı da destekler.

Maven'de POM nedir?

Maven, Java projeleri için derleme sürecini ve bağımlılık yönetimini otomatikleştiren bir araçtır. POM (Project Object Model), Maven'ın projeyi derlemek için kullandığı yapılandırma bilgilerini içeren bir XML dosyasıdır. POM dosyası; proje bağımlılıklarını, eklentileri, hedefleri ve diğer derleme yapılandırmalarını tanımlar.

Paylaş

Blogdan daha fazlası

Okumaya devam et.

Odoo inceleme öne çıkan görseli; solda büyük başlık metni ve sağda Odoo logosu, mor bulut temalı yumuşak bir arka plan üzerinde yüzen uygulama arayüzü panelleriyle çevrilmiş.
Web ve İş Uygulamaları

Kapsamlı Bir Odoo İncelemesi: Odoo İşletmeniz İçin Doğru ERP mi?

Odoo, büyüyen işletmeler arasında en sık değerlendirilen ERP platformlarından biridir. Bunun arkasında tek bir neden var: satış, muhasebe, stok yönetimi ve daha fazlasını tek çatı altında sunma vaadi.

Jim SchwarzJim Schwarz 11 dakika okuma
Açık kaynaklı WordPress alternatifleri öne çıkan görseli; renkli gradyan arka plan, masaüstü monitör, kod editörü, bulanık gösterge paneli önizlemesi ve solda büyük başlık metni.
Web ve İş Uygulamaları

Geliştiriciler İçin En İyi Açık Kaynaklı WordPress Alternatifleri

WordPress hâlâ önemini korumakta ve çok çeşitli sitelere güvenilir biçimde hizmet vermektedir. Eklenti dizininde 62.000'den fazla eklenti, tema dizininde ise 14.000'den fazla ücretsiz tema bulunmaktadır.

Jim SchwarzJim Schwarz 14 dakika okuma
Automad ve WordPress öne çıkan görseli; her iki platform logosuyla birlikte geliştiricilerin hangi CMS'i tercih etmesi gerektiğini sorgulayan bir başlık.
Web ve İş Uygulamaları

Automad ve WordPress: İki Güçlü CMS Platformunun Kapsamlı Karşılaştırması

Automad ve WordPress aynı işi birbirinden çok farklı şekillerde yapıyor. Automad düz dosya tabanlı bir CMS ve şablon motorudur; içerik veritabanı yerine dosyalarda tutulur. WordPress ise

Jim SchwarzJim Schwarz 9 dk okuma

Dağıtmaya hazır mısınız? Aylık 2,48 dan başlayan fiyatlarla.

2008'den bu yana bağımsız bulut. AMD EPYC, NVMe, 40 Gbps. 14 gün para iade garantisi.