Bevezetés a CheckStyle-be

1. Áttekintés

A Checkstyle egy nyílt forráskódú eszköz, amely ellenőrzi a kódot egy konfigurálható szabályhalmaz alapján.

Ebben az oktatóanyagban meg fogjuk vizsgálni hogyan lehet integrálni a Checkstyle-ot egy Java projektbe a Mavenen keresztül és IDE beépülő modulok segítségével.

Az alábbi szakaszokban említett beépülő modulok nem függenek egymástól, és külön-külön integrálhatók a buildbe vagy az IDE-be. Például a Maven beépülő modulra nincs szükség pom.xml futtatni az érvényesítéseket az Eclipse IDE-nkben.

2. Checkstyle Maven beépülő modul

2.1. Maven konfiguráció

Ha hozzá akarjuk adni a Checkstyle-t egy projekthez, hozzá kell adnunk a bővítményt az a jelentés szakaszához pom.xml:

   org.apache.maven.plugins maven-checkstyle-plugin 3.0.0 checkstyle.xml 

Ez a bővítmény két előre definiált ellenőrzéssel, a Sun stílusú és a Google stílusú ellenőrzéssel jár. A projekt alapértelmezett ellenőrzése: sun_checks.xml.

Az egyéni konfigurációnk használatához megadhatjuk a konfigurációs fájlunkat a fenti mintának megfelelően. Ennek a konfigurációnak a használatával a beépülő modul az alapértelmezett helyett az egyéni konfigurációnkat olvassa el.

A plugin legújabb verziója a Maven Central oldalon található.

2.2. Jelentéskészítés

Most, hogy a Maven bővítményünk be van állítva, a. Futtatásával jelentést generálhatunk a kódunkhoz mvn site parancs. Miután az elkészítés befejeződött, a jelentés elérhető a cél / webhely név alatt található mappa checkstyle.html.

A Checkstyle jelentésnek három fő része van:

Fájlok: A jelentés ezen szakasza nyújt számunkra azon fájlok listája, amelyekben a jogsértések történtek. Ez azt is megmutatja számunkra, hogy a jogsértéseket milyen súlyossággal vetik össze. Így néz ki a jelentés fájlszekciója:

Szabályok: A jelentés ezen része egy a szabálysértések ellenőrzésére használt szabályok áttekintése. Megmutatja a szabályok kategóriáját, a jogsértések számát és azok súlyosságát. Íme egy minta a jelentésből, amely a szabályok részt mutatja:

Részletek: Végül a jelentés részletei részben megadjuk a a megtörtént jogsértések részletei. A megadott adatok sorszám szinten vannak megadva. Íme a jelentés részletei:

2.3. Építsd az integrációt

Ha szükség van a kódolási stílus szigorú ellenőrzésére, úgy konfigurálhatjuk a beépülő modult, hogy az összeállítás meghiúsuljon, ha a kód nem tartja be a szabványokat.

Ezt úgy tesszük, hogy egy végrehajtási célt adunk a plugin definíciónkhoz:

 org.apache.maven.plugins maven-checkstyle-plugin $ {checkstyle-maven-plugin.version} checkstyle.xml check 

A configLocation attribútum határozza meg, hogy melyik konfigurációs fájlra hivatkozjon az érvényesítéshez.

Esetünkben a config fájl az checkstyle.xml. A cél jelölje be A végrehajtási szakaszban említettek szerint a beépülő modul futtatása az összeállítás ellenőrzési szakaszában történik, és összeépítési hibát kényszerít a kódolási szabványok megsértése esetén.

Most, ha lefuttatjuk a mvn tiszta telepítés parancsot, megkeresi a fájlokat, hogy nem észlelték-e őket, és az összeállítás sikertelen lesz, ha bármilyen szabálytalanságot találnak.

Futtathatjuk csak a jelölje be a plugin célja a mvn checkstyle: check, a végrehajtási cél konfigurálása nélkül. Ennek a lépésnek a futtatása egy hibát eredményez, ha érvényesítési hibák vannak.

3. Eclipse beépülő modul

3.1. Konfigurációk

A Maven integrációhoz hasonlóan az Eclipse lehetővé teszi számunkra az egyedi konfiguráció használatát.

A konfigurációnk importálásához lépjen a következőre: Ablak -> Beállítások -> Checkstyle. A Globális ellenőrzési konfigurációk szakaszban kattintson a gombra Új.

Ez megnyitja a párbeszédet, amely lehetőséget nyújt számunkra az egyéni konfigurációs fájl megadására.

3.2. Jelentések böngészése

Most, hogy a bővítményünk be van állítva, használhatjuk a kódunk elemzésére.

A projekt kódolási stílusának ellenőrzéséhez kattintson a jobb gombbal a projektre a Eclipse Project Explorer és válassza ki CheckStyle -> Check Code with Checkstyle.

A beépülő modul visszajelzést ad a Java kódunkról az Eclipse szövegszerkesztőben. Ezenkívül elkészíti a projekt szabálysértési jelentését, amely megtekinthető az Eclipse-ben.

A jogsértési jelentés megtekintéséhez lépjen a következő helyre: Ablak -> Nézet megjelenítése -> Egyéb, és keresse meg a Checkstyle szót. Opciók a Megsértések és Megsértési diagram kell megjeleníteni.

Bármelyik opció kiválasztásával a jogsértéseket típus szerint csoportosítva ábrázolhatjuk. Itt található a szabálysértési kördiagram egy minta projektnél:

A kördiagram valamelyik szakaszára kattintva a kódban szereplő tényleges jogsértések listájára jutunk.

Alternatív megoldásként megnyithatjuk a Probléma nézze meg az Eclipse IDE programot, és ellenőrizze a plugin által jelentett problémákat.

Íme egy példa az Eclipse IDE problémamegtekintésére:

Az egyik figyelmeztetésre kattintva eljutunk ahhoz a kódhoz, ahol a jogsértés történt.

4. IntelliJ IDEA bővítmény

4.1. Konfiguráció

Az Eclipse-hez hasonlóan az IntelliJ IDEA is lehetővé teszi számunkra, hogy saját egyedi konfigurációinkat használjuk egy projekthez.

Az IDE-ben nyissa meg a Beállítások elemet, és keresse meg a Checkstyle elemet. Megjelenik egy ablak, amelyben lehetősége van a csekkjeink kiválasztására. Kattintson a + gombra, és megnyílik egy ablak, amely lehetővé teszi, hogy meghatározzuk a használni kívánt fájl helyét.

Most kiválasztunk egy konfigurációs XML fájlt, és kattintson a Tovább gombra. Ez megnyitja az előző ablakot, és megmutatja az újonnan hozzáadott egyéni konfigurációs opciót. Kiválasztjuk az új konfigurációt, és az OK gombra kattintva kezdjük el használni a projektünkben.

4.2. Jelentések böngészése

Most, hogy a bővítményünk be van állítva, használjuk a szabálysértések ellenőrzésére. Egy adott projekt megsértésének ellenőrzéséhez lépjen a következő helyre: Elemzés -> Kód ellenőrzése.

Az ellenőrzési eredmények áttekintést nyújtanak a Checkstyle szakasz alatti jogsértésekről. Itt egy minta jelentés:

Ha rákattint a szabálysértésekre, akkor eljutunk a fájl azon pontjaihoz, ahol a jogsértések történtek.

5. Custom Checkstyle konfiguráció

A Maven jelentés létrehozása szakaszban (2.2. Szakasz) egy egyedi konfigurációs fájlt használtunk a saját kódolási standard ellenőrzéseink elvégzéséhez.

Van módunk létrehozni saját egyéni konfigurációs XML fájlunkat ha nem akarjuk használni a csomagolt Google vagy Sun csekkeket.

Itt található a fenti ellenőrzésekhez használt egyéni konfigurációs fájl:

5.1. DOCTYPE Definíció

Azaz a DOCTYPE definíció első sora a fájl fontos része, és megmondja, honnan töltse le a DTD-t, hogy a konfigurációkat megérthesse a rendszer.

Ha nem vesszük fel ezt a meghatározást a konfigurációs fájlunkba, az nem lesz érvényes konfigurációs fájl.

5.2. Modulok

A konfigurációs fájl elsősorban modulokból áll. Egy modul rendelkezik attribútummal név ami azt jelenti, amit a modul csinál. A. Értéke név attribútum egy osztálynak felel meg a plugin kódjában, amelyet a plugin futtatásakor hajtanak végre.

Ismerkedjünk meg a fenti konfigurációban található különféle modulokkal.

5.3. A modul részletei

  • Ellenőr: A modulok egy fában vannak felépítve, amelynek gyökérében a Checker modul található. Ez a modul meghatározza azokat a tulajdonságokat, amelyeket a konfiguráció összes többi modulja örököl.
  • TreeWalker: Ez a modul ellenőrzi az egyes Java forrásfájlokat, és meghatározza az ilyen fájlok ellenőrzésére alkalmazható tulajdonságokat.
  • AvoidStarImport: Ez a modul szabványt szab arra, hogy ne használjuk a Star importálást a Java kódunkban. Ezenkívül rendelkezik egy tulajdonsággal, amely arra kéri a bővítményt, hogy figyelmeztetésként tegyen jelentést az ilyen problémák súlyosságáról. Így, ha ilyen szabálysértéseket találnak a kódexben, figyelmeztetést jeleznek ellenük.

Ha többet szeretne megtudni az egyéni konfigurációkról, kövesse ezt a linket.

6. Jelentéselemzés a Tavasz-Pihenő Projekthez

Ebben a részben megvilágítjuk a Checkstyle által elvégzett elemzést, a fenti 5. szakaszban létrehozott egyedi konfiguráció felhasználásával, a GitHubon elérhető rugó-pihenés projekt példaként.

6.1. Szabálysértési jelentés létrehozása

Importáltuk a konfigurációt az Eclipse IDE-be, és itt található a szabálysértési jelentés, amely a projekt számára készült:

Az itt közölt figyelmeztetések szerint a kódban kerülni kell a helyettesítő karakterek behozatalát. Két fájlunk van, amely nem felel meg ennek a szabványnak. Amikor rákattintunk a figyelmeztetésre, az a Java fájlhoz vezet, amely megsérti.

Itt van, hogyan HeavyResourceController.java fájl tartalmazza a bejelentett figyelmeztetést:

6.2. Problémafeloldás

A Star import használata általában nem jó gyakorlat, mivel konfliktusokat okozhat, ha két vagy több csomag ugyanazt az osztályt tartalmazza.

Példaként vegyük figyelembe az osztályt Lista, melyik van csomagokban kapható java.util és java.awt mindkét. Ha mindkét importját felhasználjuk java.util . * és java.awt. * fordítónk nem fogja összeállítani a kódot, mint Lista mindkét csomagban kapható.

A fent említett probléma megoldása érdekében mindkét fájlban rendszerezzük az importálást és elmentjük őket. Most, amikor újra futtatjuk a bővítményt, nem látjuk a szabálysértéseket, és kódunk mostantól követi az egyéni konfigurációnkban meghatározott szabványokat.

7. Következtetés

Ebben a cikkben a Checkstyle Java projektünkbe történő integrálásának alapjait ismertettük.

Megtudtuk, hogy ez egy egyszerű, mégis hatékony eszköz, amely biztosítja, hogy a fejlesztők betartsák a szervezet által meghatározott kódolási szabványokat.

A statikus elemzéshez használt mintakód elérhető a GitHub oldalon.


$config[zx-auto] not found$config[zx-overlay] not found