Eclipse – Bazı Ipuçları

Çoğu Java yazılımcısı Eclipse kullanıyor. Fakat Eclipse’in ayrıntılarını ne kadar biliyoruz? Tamam herkes en azından bir Build Path’ı değiştirmiştir. Fakat bir IDE’nin size sadece bu kadarını sağladığını düşünüyorsanız çok yanılıyorsunuz. Tabi IDE’nin size sağladığı kadar onu nasıl ayarlayacağınızda önemli. Ben genel olarak Web uygulamaları geliştiriyorum, önceleri Wicket Framework’ünü kullanırken, şimdiler de JSF kullanıyorum. Yarın ise ne kullanacağımı ben bile kestiremiyorum. Bu yazımda ise Eclipse’i kendi isteğiniz doğrultunuzda ayarlamanız için size bazı ipuçları vereceğim.

Öncelikle belirtmeliyim ki ben yazımı Eclipse Indigo üzerinde yazıyorum. Ne yazık ki daha Eclipse Juno’ya geçme şerefine nail olamadım. Fakat yakın zamanda da geçmeyi planlamıyorum. Bunun bir nedeni Juno’nun daha yeni çıkmış olması ve büyük bir değişim geçirmiş olması. Lafı daha fazla uzatmadan ip uçlarına geçiyorum.

JavaDoc

Elimden geldiğince JavaDoc yazmaya çalışmama rağmen ne yazık ki yeterince yazmadığımı düşünüyorum. Genellikle koda konsantre olduğumdan JavaDoc yazmak aklıma bile gelmeyebiliyor. Bundan dolayı Eclipse’e oluşturduğum tüm sınıflarda ve metodlarda JavaDoc’u benim için otomatik oluşturmasını istiyorum. Bu sizi yanıltmasın sadece belirli şeyleri otomatik oluşturmanıza izin veriyor. Ne yazık ki Eclipse için tüm JavaDoc’ları otomatik oluştur diye bir seçenek yok. Bu sebepten her oluşturma sırasında bunu kendiniz söylemelisiniz. Şimdi sırasıyla aklıma gelen Generate Comments alanlarını söylüyorum. Siz eğer başka yerlerde karşılaşırsanız, “Generate Comment” seçeneğini seçmeniz yeterli olacaktır.

  • Tabi en basit JavaDoc oluşturma yöntemi sınıf, paket adı, metod ya da alanın üzerinde /** yazıp enter’a basmak. Sizin için return değerlerini, parametrelerini, exception’larını falan hepsini oluşturacaktır. Ama heralde bunu bilmeyen yoktur.
  • Context menüsünde (Editör üzerinde sağ tık), Refactor kısmında Extract Method var. Eminim bu seçeneği kodunuzu Refactor ederken sık sık kullanıyorsunuzdur. Fakat bu güne kadar gözünüze çarpmadıysa, ikinci sırada ki Generate Method Comments seçeneğini seçmeniz, Javadoc oluşturması için yeterlidir.
  • Yine Context menüsünde, bu sefer Source kısmıdna Generate Getters/Setters seçeneğinde yine buna benzer bir seçenek göreceksiniz. Onuda gönül rahatlığıyla seçebilirsiniz.
  • Yine aynı şekilde sınıf ya da Interface oluştururken, en aşağıda Generate Comments seçeneğini göreceksiniz.

Tabi ki bu listeyi uzatmak mümkün. Ama heralde ne demek istediğimi anladınız. JavaDoc yazmasanız bile size tavsiyem bu oluşturma seçeneklerini her yerde seçmeniz. Hiç bir şey sağlamasanız bile belgeyi sizin oluşturduğunuz bilgisini ekleyecektir. Büyük projelerde emin olun bu bile çok önemli olabiliyor.

Eclipse’in Olusturdugu Kodları Düzenleme

Esas söylemek istediğimiz, sınıfınızı oluşturuken yorum satırlarının ne şekilde yazılacağını belirleyebiliyorsunuz. Örneğin sınıflarınızın başına kendi lisans duyurunuzu otomatik olarak ekleyebilirsiniz. Ya da sınıfınızın başında javadoc içerisinde sadece adınız değil aynı zamanda bu belgeyi yaratma zamanınız da gözüke bilir.

Bunun için Eclipse Ana Menüsünden Window->Preferences seçeneğini seçiniz. Burdan sağdaki menüden, Java -> Code Style-> Code Templates dalına ilerleyin. Burda göreceğiniz üzere ister yorum satırlarına istersenizde oluşan kodlara müdahele edebiliyorsunuz. Benim bir Eclipse kurduğumda ilk yaptığım şey gelip buradan tüm TODO satırlarını silmek oluyor.

Tabiki oluşan kodların hepsini Code Templates kısmı oluşturmuyor, Eclipse editörüde sizin için kodlar oluşturuyor. Eminim uzun yıllar java ile uğraşmış olupta, “syso+CTRL+SPACE” kısayolunu bilmeyen yoktur. Bilmeyenler için belirtiyim otomatik olarak System.out.println() yazacaktır. Tabi bu tip tonlarca kısa yol mevcut Eclipse içerisinde. Bu kısayolların hepsini tek seferde görmeniz mümkün yine Window->Preferences altından, bu sefer Java->Editor->Templates dalına geliyoruz.

Gördüğünüz üzere kullandığınız tüm diğer kısayollarda burada. Size ufak bir tavsiye eğer TODO‘lardan kurtulmak istiyorsanız burdan da TODO‘ları kaldırmanız gerekiyor.

Tabi isterseniz kendiniz için kısa yollar oluşturada bilirsiniz. Ben mesela lge ve lgs gibi iki farklı kısa yol kullanıyorum. Bunlar metodların başına ya da sonuna logger.entry ve logger.exit metodları atmamı sağlıyor. Eğer sizin kendi loglama alışkanlıklarınız varsa bunları burada kolaylıkla kısayola çevirebilirsiniz.

Eclipse ile Kod Temizleme

Kod temizleme denildiğinde aklınıza kodun incelenmesi, yada static code analizi gelmesin. Kullanılmayan import kalıplarının kaldırılması, gerekli yerlerde final’ın eklenmesi, Kod girintilemesinin doğru yapılması gibi şeylerden bahsediyorum. Hiç ayarlarını değiştirmeden kodunuzu temizlemek istiyorsanız kodunuz ekrandayken ya da sağ taraftan seçiliyken, Ana Menüden, Source->Clean Up yaparsanız kodunuzun temizlendiğini göreceksiniz.

Fakat kodunuzun nasıl temizleneceğine kendiniz karar vermek istiyorsanız, yine Windows->Preferences altından Java -> Code Style-> Clean Up dalına ilerlemeniz gerekiyor. Burada değişiklikleri yaparken zorlanacağınızı düşünmüyorum.

Aynı şekilde kodunuzu nasıl girintileyeceğinize de kendiniz karar verebiliyorsunuz. En basitinden bazı kullanıcılar süslü parantezi bir alt satırda kullanırken bazıları aynı satırda isterler. İşte kod satır uzunluğunda, girintilemeye kadar hemen herşeyin nasıl formatlanacağını ayarlamak için yine Windows->Preferences altından Java -> Code Style-> Formatter dalına ilerlemeniz gerekiyor.

Tüm bu editör tabanlı kod üretme ve kod temizleme seçeneklerini her defasında yapmanıza da gerek yok üstelik. Tüm bu ayarlarınızı ayrı ayrı Export edebilir ve yeni bir eclipse kurduğunuzda tekrardan import edebilirsiniz.

Eclipse.ini

Şimdi birazda eclipse başlangıç parametrelerinden bahsedelim. Java 1.7’nin çıkmasıyla birlikte, yazılımcılar hem 1.6 hem 1.7 kurmaya başlıyor. Aynı şekilde x86 ve x64 için olan Java versiyonlarınıda sayacak olursanız ihtimallerin ne kadar arttığını kendiniz göreceksiniz. Projeyi de ayrı ayrı test etmek isteyebiliyorlar. Fakat bu gibi durumda sisteminiz otomatik olarka en yüksek versiyonlu Java mimarisini seçmeye çalışacaktır.

Fakat gelin görün ki Eclipse altındaki tüm eklentiler Java 1.7 ile uyumlu çalışmıyor. Hatta sadece ufak eklentiler değil Eclipse içerisinde JbossTools gibi büyük eklentiler bile size bu tip sorunlar çıkartabiliyor. Örneğin JbossTools’un bütün özellikleri x64 mimarisinde ki Java ile doğru şekilde çalışmıyor.

Bunun için eclipse.ini dosyasına aşağıdaki satırları eklemeniz gerekmektedir.

Burada vm ile dosya yolu arasındaki satır boşluğuna dikkat etmelisiniz. Sorunsuz çalışacaktır fakat yinede size tavsiye önce eclipse.ini dosyasının bir yedeğini alın.

Ne yazık ki tek değiştirmek istediğimiz bu değil. Eğer sınıflarınızı oluştururken JavaDoc oluşturmaya başladıysanız, göreceksiniz ki yazar kısmında windows kullanıcınızın adı gözükmektedir. Bu elbette bir projede istediğiniz bir şey olmayacaktır. Bunun için yine eclipse.ini dosyanıza aşağıdaki satırı ekleyebilirsiniz. Tabi bu sefer istediğiniz bir yere değil -vmargs parametresinden sonra ki satırlara eklemelisiniz.

Ayrıca Türkçe destekli makinelerde çalışıyorsanız sık sık 2nterface ya da w2ndows tarzı hatalar alabilirsiniz. Bunlar genelde kullandığınız dilden kaynaklanmaktadır. Örneğin INTERFACE diye tanımlı bir kelimeyi Türkçe lokalinde küçük harf yapmaya çalışırsanız ınterface diye sonuç alacaksınız. Ama ı harfi ne komut satırınız için ne de java sınıf adı için geçerli değildir. Bu sebepten hata ile karşılaşacaksınız.

Bu hatayı ben şu ana kadar;

  • Maven ile JavaDoc oluştururken
  • Jboss AS
  • Seam-gen
  • Seam Forge

araçlarında aldım. Emin olun eğer neyi aradığınızı bilmiyorsanız 2nterface not found tarzında alacağınız bir hata sizi hiç bir yere götürmeyecektir. Bu hatayı çalıştığınız dili değiştirerek aşmanız mümkün. Tüm java uygulamalında olduğu gibi eclipse içinde lokalinizi ve çalıştığınız dili değiştirmek mümkün bunun için aşağıdaki satırları yine -vmargs parametresinden sonra eklemeniz yeterli olacaktır.

Bu iki parametre JVM parametresi olduğundan tüm java uygulamalarınızda kullanabilirsiniz.

Eğer MaxHeapSpace, OutofMemory hataları alıyorsanız da yine Eclipse.ini içerisinde, -Xmx512m satırını kendi istediğini şekilde değiştirmeniz yeterli olacaktır.

Eclipse Indigo Özel

Evet son ipucuda Eclipse Indigo için geliyor. Aslında buna ipucundan ziyade bir sorundan kurtulma desek daha doğru olur. Ne yazık ki bazı Eclipse Indigo sürümlerinde JavaScript validation hatalıdır. Doğru olan JS dosyalarızda hata olduğunu iddia eder Eclipse. Bunu aşmanın yolu,  Project->Properties->Builders dalına gelip, JavaScript Validator seçeneğini kaldırmaktan geçmektedir.

Umarım azda olsa Eclipse ile ilgili olarak size bazı ip uçları verebilmişimdir.

End Of Line