Maven Eklentileri – Bölüm 2/2

Maven, Java ortamında bir proje gerçeklemek için olabilecek en iyi araçlardan biri. Fakat bu zamana kadar maven aracını sadece proje bağımlılıklarını yönetmek için kullanıyorsanız maven aracını tam hakkıyla kullanmıyorsunuzdur. Maven geliştirilen eklentiler sayesinde, projenizi sizin istediğiniz şekilde derleyip, sizin istediğiniz şekilde paketleyebiliyor. Üstelik bu paketleme işlemleri sadece, WAR, JAR ve EAR ile sınırlı değil. Java ile proje geliştirirken karşılaşacağınız neredeyse tüm uzantılarla paketleme yapabiliyorsunuz. Üstelik istediğiniz taktirde maven sizin için proje raporlarını oluşturup bunları ufak bir site haline bile getirebiliyor. İşte bu iki özellik bu yazı dizimizin ana konusunu oluşturacak

Içerik

Bu kısa yazı dizimiz iki temel konuyu inceleyecek. Bu yazılardan ilki build ve test aşamalarında çalışacak eklentileri ele alırken, ikinci yazı daha çok raporlama üzerine olacak. Tabi sadece eklentilerin ne olduğu ve nasıl kullanılacağını değil aynı zamanda kullanmanız halinde size ne gibi yararlar sağlanılacağınada değinilecek.

  1. Maven Eklentileri – Bölüm 1/2: Build ve Test Eklentileri

  2. Maven Eklentileri – Bölüm 2/2: Raporlama Eklentileri

Raporlama Eklentileri

Build eklentileri siz projenizi her derlemeye çalıştığınızda çalışırlarken, Raporlama eklentileri böyle değildir. Sonuçta testleriniz sürerken daha yeni başladığınızda falan bir rapora ihtiyaç duymayacaksınız. Ancak işiniz bitip herşey yerli yerine oturmaya başladıktan sonra bir raporlama mekaizmasına ihtiyaç duyacaksınız.

Raporlamaları tetiklemek için pom.xml dosyasının bulunduğu klasörde aşağıdaki komutu çalıştırmanız yeterli olacaktır.

  • $ mvn site

maven-project-info-reports-plugin

Tanım

Ana raporlama eklentisidir. pom.xml dosyasında tanımladığınız bilgilerden yola çıkarak sizin için raporlar oluşturur. Proje açıklamanızı, takım bilgileriniz, bağımlılık bilgilerinizi yani kısaca aklınıza gelebilecek her bilgiyi kullanıp size, bir rapor hazırlar. Hazırladığı bu rapor bir web sitesidir. Bundan sonra eklenecek bütün raporlama eklentileri bu site üzerinden gösterilir.

Kullanım

Tabi büyük projelerde bu tip raporlar uzun sürelerde hazırlanabilir. Bazense küçük projelerde bu bilgilerin hepsi bulunmaz. Bundan dolayı hangi raporu kullanıp hangisini kullanmayacağınızı, hangi raporun ne kadar ayrıntısını istediğinizi belirtmeniz gerekmektedir. Ben aşağıdaki şekliyle kullanıyorum, size kendi ihtiyacınız doğrultusunda bunu güncelleyip kullanmanızı öneririm. Bu eklentiyi kullanmak için <reporting> etiketinin altındaki <plugins> etiketinin aşağıda gösterildiği şekliyle <plugin> etiketini eklemelisiniz.

pom.xml


<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.4</version>
<reportSets>
<reportSet>
<reports>
<report>index</report>
<report>dependencies</report>
<report>dependency-convergence</report>
<report>dependency-management</report>
<report>project-team</report>
<report>plugins</report>
<report>modules</report>
<report>help</report>
</reports>
</reportSet>
</reportSets>
</plugin>

maven-surefire-report-plugin

Tanım

Build ve Test eklentileri bölümünde, surefire test eklentisinden bahsetmiştik. Bu raporlama eklentisi surefire test eklentisinin ürettiği sonuçları kullanarak size bir rapor oluşturur. Oluşturduğu bu raporda hangi testin ne sonuç döndürdüğünü, başarılı olup olmadığı bilgisini gösterir.

Kullanım

Bu eklentiyi kullanmak için <reporting> etiketinin altındaki <plugins> etiketinin aşağıda gösterildiği şekliyle <plugin> etiketini eklemelisiniz.

pom.xml


<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>2.12</version>
</plugin>

maven-javadoc-plugin

Tanım

Adından da anlayacağınız üzere sizin için projenizin Javadoc’unu oluşturur. Tabi bunun için projenizin Javadoc’larını yazmış olmanız gerekiyor. Fakat isterseniz bu eklenti sizin için javadoc’larınızıda oluşturuyor. Fakat bu özellik daha beta aşamasında olduğundan ciddi projelerinizde kullanmamanızı öneriyorum.

Kullanım

Web uygulaması geliştirirken karşınıza çıkan encoding problemi ne yazıkki javadoc oluştururkende yakamızı bırakmıyor. Interface gibi yapılarda, I ve i harfinden dolayı Javadoc hata verebiliyor. Bunun için lokalimizi en_US şeklinde değiştirerek kullanıyoruz bu eklentiyi. Eğer eclipse altında bu sorunla karşılaşırsanız parametre olarak -locale=en_US kullanmanız yeterli olacaktır.

pom.xml


<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.8.1</version>
<configuration>
<failOnError>false</failOnError>
<locale>en_US</locale>
<javadocVersion>${target.java.version}</javadocVersion>
</configuration>
</plugin>

Eğer betada olsa nasıl Javadoc oluşturabileceğinizi merak ediyorsanız, yukarıdaki ayarları yaptıktan sonra aşağıdaki komutu çalıştırıp deneyebilirsiniz. Ama uyarıyorum beta sürümü kodlarınıza zarar verebilir.

  • $ mvn javadoc:fix

maven-plugin-plugin

Tanım

Bu belkide en az işinize yarayacak eklentidir. Fakat ben seviyorum. Çünkü benimle aynı projede çalışan herkes maven aracının ayrıntılarını fazla bilmiyor. Hangi eklentinin neye yaradığını neden olduğunu bilmiyor. Genel olarak başka bir projede görmüş ve eklemiş oluyor. Bu eklenti ise bu eksikliği bir ölçüde kapatıyor.

Kullanım

Bu eklentiyi kullanmak için <reporting> etiketinin altındaki <plugins> etiketinin aşağıda gösterildiği şekliyle <plugin> etiketini eklemelisiniz.

pom.xml


<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<version>2.5.1</version>
</plugin>

jdepend-maven-plugin

Tanım

Bu eklenti her bir paketinizi inceleyip, hangi paketen başka hangi pakete bağımlılığı olduğunu saptıyor. Bu sayede projenin içeriğine daha hakim olduğunuz gibi, hangi paketin hangi kütüphaneye bağımlılığı olduğunuda daha rahat görebiliyorsunuz.

Kullanım

Bu eklentiyi kullanmak için <reporting> etiketinin altındaki <plugins> etiketinin aşağıda gösterildiği şekliyle <plugin> etiketini eklemelisiniz.

pom.xml


<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jdepend-maven-plugin</artifactId>
</plugin>

maven-jxr-plugin

Tanım

Bu eklenti size, oluşturduğunuz rapor sitesinde kaynak kodlarınızı görüntülemenize yarar. Kaynak kodların rapor sitesinde olmasının avantajları vardır. Bunun başında javadoc ve kaynak kodu arasında geçişler yapabilmeniz gelir. Ayrıca kaynak kod analiz eklentilerinde de bir hata ile karşılaştığınızda doğruca koda gidip hatanının olduğu yere bakabilirsiniz.

Kullanım

Bu eklentiyi kullanmak için <reporting> etiketinin altındaki <plugins> etiketinin aşağıda gösterildiği şekliyle <plugin> etiketini eklemelisiniz.

pom.xml


<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
</plugin>

maven-checkstyle-plugin

Tanım

Checkstyle java ortamı için ünlü araçlardan biridir. Sizin için Java kodunuzu analiz eder ve istediğiniz sitilde olup olmadığına bakar. Eğer kendi sitilinizi ayarlamak istemiyorsanız benim gibi doğrudan Sun tarafından oluşturulmuş sitili kullanıp kodunuzu inceleyebilirsiniz. Fakat uyarmakta fayda var satır sonları, tab karakterleri gibi çok uyuz şeylerede kıza biliyor. Bundan dolayı kendi sitilinizi yazmanızı tavsiye ederim.

Kullanım

Bu eklentiyi kullanmak için <reporting> etiketinin altındaki <plugins> etiketinin aşağıda gösterildiği şekliyle <plugin> etiketini eklemelisiniz. Tahmin edeceğiniz üzere sun sitilini kullanacak şekilde ayarlanmıştır.

pom.xml


<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.9.1</version>
<configuration>
<format>sun</format>
</configuration>
</plugin>

maven-pmd-plugin

Tanım

PMD ise yine ünlü bir kod analiz aracıdır. Checkstyle gibi sitile yönelik değilde kullanıma yöneliktir. Nesnelerin oluşturulması, kullanılmayan nesne referasları, “final” kontrolleri gibi kullanıma yönelik incelemeleri yapar.

Kullanım

Bu eklentiyi kullanmak için <reporting> etiketinin altındaki <plugins> etiketinin aşağıda gösterildiği şekliyle <plugin> etiketini eklemelisiniz. Ayrıca ayarlarında hedef aldığımız java versiyonunu veriyorum.

pom.xml


<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>2.7.1</version>
<configuration>
<targetJdk>${target.java.version}</targetJdk>
</configuration>
</plugin>

findbugs-maven-plugin

Tanım

Findbugs ise yine bir kod analiz aracıdır. PMD ve Checkstyle’dan farklı olarak, oluşabilecek bugları taramaktadır.

Kullanım

Bu eklentiyi kullanmak için <reporting> etiketinin altındaki <plugins> etiketinin aşağıda gösterildiği şekliyle <plugin> etiketini eklemelisiniz.

pom.xml


<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>2.5.1</version>
</plugin>

taglist-maven-plugin

Tanım

Son eklentimiz ise TagList eklentisi. Kodunuzu tarar ve bulduğu TODO, FIXME gibi tagleri toplayarak rapor halinde sunar.

Kullanım

Bu eklentiyi kullanmak için <reporting> etiketinin altındaki <plugins> etiketinin aşağıda gösterildiği şekliyle <plugin> etiketini eklemelisiniz.

pom.xml


<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>taglist-maven-plugin</artifactId>
<version>2.4</version>
</plugin>

Diger Eklentiler

Tabikide maven altında çalışan tüm build ve test eklentileri bu kadar değil. Daha bir çokları maven sitesinde mevcut. Merak edenler aşağıdaki iki sayfayı ziyaret edip diğer maven eklentilerinide öğrenebilir.

End Of Line