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.
- Maven Eklentileri – Bölüm 1/2: Build ve Test Eklentileri
- 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