A következő címkéjű bejegyzések mutatása: Eclipse. Összes bejegyzés megjelenítése
A következő címkéjű bejegyzések mutatása: Eclipse. Összes bejegyzés megjelenítése

2012. január 4., szerda

Hasznos Eclipse pluginok Java alapú fejlesztéshez

Már elég régóta használok Eclipse-t a fejlesztéshez és mostanra összegyűlt pár hasznos plugin amiket mindig telepíteni szoktam, így most összeírtam ezeket. Az Eclipse Marketplace (Help/Eclipse Marketplace...) bevezetése óta, szerencsére a szükséges pluginok összevadászása is gyorsan megvan, nem kell sokat keresgélni.
JBoss, Hibernate és JSF alapú projectek fejlesztéséhez elengedhetetlen. Segítséget nyújt a projektek generálásához, kódok kiegészítéséhez, EJB-QL lekérdezések real-time teszteléséhez, JBoss ESB és JBPM-es fejlesztésekhez is.

JRebel plugin
A blogom olvasóinak gondolom nem kell bemutatnom a JRebel-t, nélkülözhetetlen eszköz Enterprise Java fejlesztéshez! A hozzákapcsolódó plugin megkönnyíti a telepítést és a konfigurálást is.

Eclipse Memory Analyzer plugin
Az EMA egy kiváló Java Heap analizáló kiterjesztés, ami segít a memory leak-ek megtalálásában, továbbá hasznos információkat szolgáltat arról, hogy milyen objektumok foglalják a memóriát! A legújabb fejlesztéseknek köszönhetően nemcsak SUN-os, hanem IBM Java-s heap dump-ot is analizálhatunk vele.
Log fájlok nézegetésére szolgáló plugin, a console view-hez hasonló működéssel. Erre a pluginra akkor volt szükségem amikor egy Websphere 6.1-es fejlesztésénél áttértünk a RAD folytonos belassulása miatt Eclipse-re és ott is fontos volt a napló állományok kényelmes követése. A plugin bevált, azóta is ezt használjuk!

Java Decompiler plugin (JAD)
Ez a tool lehetőséget ad a Java class fájlok visszafejtésére és analizálására. Hasznos lehet ha elveszett Java forrásainkat akarnánk a class fájlokból visszaállítani vagy ha egy nem open sorce Java library osztályainak tartalmába szeretnék betekintést nyerni! Van egy standalone verziója is JD-GUI néven.

Subclipse plugin
A népszerű Subversion-hoz (SVN) készült Eclipse plugin. Már régóta használom, gond nélkül működik.

FindBugs plugin 
A FindBugs felfedi a kódban a gyakori programozói hibákat, bad practice-eket és javaslatokat ad a kijavításukra. Pl.: objektumok összehasonlítása == operátorral; hashCode() nélküli equals() metódus; stb... Létezik még egy findbugs-contrib kiegészítő is, ami további hiba detektorokkal egészíti ki a keresést. Érdemes mind kettőt telepíteni!
A findbugs-hoz hasonló, potenciális Java hibák keresésére szolgáló plugin, ami segít megtalálni a nem optimális kódokat, lehetséges bugokat és a túlkomplikált kifejezéseket is. Jól paraméterezhető és egyszerűen szűkíthető a detektálandó hiba típusok köre, továbbá lehetőségünk van saját hiba detektáló kiterjesztéseket is beilleszteni! A PMD pluginhoz tartozik még egy paraméterezhető Copy-Paste-Detector (CPD), amivel segíthetünk kiiktatni ezt a rossz programozói szokást! :)

Checkstyle plugin
Szintén egy statikus kód ellenőrző plugin, azonban ezzel a kódolási standardokra fogalmazhatunk meg szabályokat. pl.: maximum 500 soros lehet egy Java osztály, legfeljebb 3 paramétere lehet egy metódusnak; a paraméternevek nem tartalmazhatnak ékezetes betűket; stb... A PMD-hez hasonlóan ez is jól paraméterezhető és egyedi szabályokkal is bővíthető.
Különböző metrikákat tudhatunk meg a kódunkról és az osztályok közötti csatolásról, melyeket grafikusan is megtekinthetünk! pl.: Ciklomatikus komplexitás; kohézió, stabilitás, stb...
A CodePro Analytix szintén egy hasznos tool amit a Google fejleszt. Az előbb említett statikus kód analizálók tulajdonságait ötvözi és kiegészíti kód lefedettség ellenőrzéssel valamint automatikus unit teszt generálással is, bár ez utóbbit azért kezeljük óvatosan! A statikus kód analizálók közül ez tekinthető a legteljesebbnek.


Érdemes még megnézni az Eclipse Marketplace toplistát, mert rátalálhatunk egy-két hasznos kiegészítőre! A jövőben még bővíteni fogom ezt a bejegyzést, így a későbbiekben is látogass majd vissza! .)

2011. március 20., vasárnap

JBoss-orientált fejlesztőkörnyezet kialakítása - 2.

Frissítve: 2011.04.21. 

A cikk előző részében elkészítettem a fejlesztőkörnyezet szerver oldali részét, a mostani post-ban pedig az Eclipse beállításával és a környezet csinosítgatásával folytatom a leírást. 

Mivel nem voltam megelégedve az Ubuntu alapértelmezett betűtípusával, feltelepítettem a Microsoftos betűtípusokat a sudo apt-get install ttf-mscorefonts-installer cabextract paranccsal és módosítottam a fontokat az Ubuntu System/Preference/Appearance menü alatt az alábbiak szerint:


A sudo apt-get install eclipse paranccsal felraktam az Eclipse-t, majd az /etc/eclipse.ini fájlban módosítottam az alapértelmezett memória beállításokon, mert az -Xms,-Xmx,-XXMaxPermSize értékeit alacsonynak találtam. Az Eclipse toolbar és tabbar widget-ei túl sok helyközt tartalmaznak Linux alatt, ezért az Ubuntu fórum egyik bejegyzése alapján létrehoztam a /home/balazs könyvtár alatt egy .gtkrc-2.0 nevű fájlt, majd bemásoltam az alábbi sorokat a megjelenés feljavításához és újraindítottam az Eclipse-t.

style "gtkcompact" {
GtkButton::default_border={0,0,0,0}
GtkButton::default_outside_border={0,0,0,0}
GtkButtonBox::child_min_width=0
GtkButtonBox::child_min_heigth=0
GtkButtonBox::child_internal_pad_x=0
GtkButtonBox::child_internal_pad_y=0
GtkMenu::vertical-padding=1
GtkMenuBar::internal_padding=0
GtkMenuItem::horizontal_padding=4
GtkToolbar::internal-padding=0
GtkToolbar::space-size=0
GtkOptionMenu::indicator_size=0
GtkOptionMenu::indicator_spacing=0
GtkPaned::handle_size=4
GtkRange::trough_border=0
GtkRange::stepper_spacing=0
GtkScale::value_spacing=0
GtkScrolledWindow::scrollbar_spacing=0
GtkTreeView::vertical-separator=0
GtkTreeView::horizontal-separator=0
GtkTreeView::fixed-height-mode=TRUE
GtkWidget::focus_padding=0
}
class "GtkWidget" style "gtkcompact"

style "compact-toolbar"
{
    GtkToolbar::internal-padding = 0
    xthickness = 1
    ythickness = 1
}

style "compact-button"
{
    xthickness = 0
    ythickness = 0
}

class "GtkToolbar"                   style "compact-toolbar"
widget_class "*<GtkToolbar>*<GtkButton>"    style "compact-button"

Ezután módosítottam az Eclipse alapértelmezésként használt betűtípusain is. A Window/Preferences menü alatt a General/Appearance/Colors and Fonts beállításánál a Java/Java Editor Text Font és Basic/Text Font -hoz megadtam a Courier 10 pitch/Regular/11px karakter formátumot.


A következő lépésben beállítottam a JBoss Community által használt Java kód formázási stílust, melyet a Seam3-nál és a JBoss AS 7 projektnél is alkalmaznak. Ehhez a Window/Preferences/Java/CodeStyle/Formatter menüpont alatt beimportáltam a JBossAs7Formatter xml fájlt. A forráskód formázáshoz a CTRL+F billentyűkombinációt kell alkalmazni az Eclipse Java editor view-ban.


Érdemes még beállítani az xhtml fájlok formázásához a Line Width=128 értéket, így a CTRL+F hatására az xhtml oldalak tagolása is megfelelő lesz. (Window/preferences/Web/HtmlFiles/Editor)
Végül módosítottam a szöveges fájlok alapértelmezett kódolását UTF-8-ra, valamint a line delimiter-t UNIX stílusúra. (window/preferences/general/workspace) Így zökkenőmentesen dolgozhat több fejlesztő is ugyanazon a projekten, eltérő operációs rendszert használva. 


A módosítások eredménye jól látható az alábbi képernyőképek alapján:
 
Alapértelmezett megjelenés

Módosított megjelenés

Mivel az előkészített környezetben leginkább JBoss alapú technológiákat fogok használni, így a fejlesztés támogatásához felraktam a JBoss Tools plugint. A telepítéséhez kiválasztottam a Help/Install New Software... menüpontot, majd hozzáadtam az Eclipse verziójához (Help/About Eclipse SDK) illeszkedő update site url-t. A repository-ból feltelepített Eclipse 3.5.2 -höz, a JBoss Tools 3.1 stable release update site-ot használtam. Az Eclipse újraindítása után átváltottam a JBossAS perspektívára (Window/Open Perspective/ Other...), majd felvettem a JBoss alkalmazás szervert (JBoss Server View/jobb klikk/new/server/JBoss AS 5.1) és hozzáadtam a Seam Runtime-ot (Window/Preferences/JBossTools/Web/Seam).

A File/New/Seam Web Project menüt kiválasztva, lehetőségünk van gyorsan legenerálni egy Seam sablon alkalmazást (Enterprise vagy Web) melyet igényeink szerint módosíthatunk.