{"id":518,"date":"2024-11-25T10:19:10","date_gmt":"2024-11-25T09:19:10","guid":{"rendered":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/?p=518"},"modified":"2024-12-06T10:28:59","modified_gmt":"2024-12-06T09:28:59","slug":"analyse-von-codezeilen-in-java-projekten-mit-dem-tool-cloc","status":"publish","type":"post","link":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/?p=518","title":{"rendered":"Analyse von Codezeilen in Java-Projekten mit dem Tool cloc"},"content":{"rendered":"\n<p>Die Analyse von Codezeilen (Lines of Code, kurz LOC) ist ein g\u00e4ngiges Verfahren, um den Umfang und die Struktur eines Softwareprojekts zu bewerten. Mit dem Tool <code>cloc<\/code> (Count Lines of Code) l\u00e4sst sich dies einfach und effizient bewerkstelligen. <code>cloc<\/code> ist ein leistungsstarkes, plattform\u00fcbergreifendes Open-Source-Tool, das speziell f\u00fcr die Analyse von Quellcode entwickelt wurde. Es kann nicht nur die Anzahl der Codezeilen z\u00e4hlen, sondern auch Kommentare und Leerzeilen analysieren.<\/p>\n\n\n\n<p>In diesem Artikel erkl\u00e4ren wir die Funktionsweise von <code>cloc<\/code>, seine Installation und wie Sie es optimal nutzen k\u00f6nnen, um ein Java-Projekt zu analysieren.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Warum <code>cloc<\/code>?<\/h2>\n\n\n\n<p><code>cloc<\/code> bietet eine Vielzahl von Vorteilen gegen\u00fcber der manuellen Analyse mit Befehlen wie <code>find<\/code> oder <code>wc<\/code>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Unterst\u00fctzt mehrere Programmiersprachen:<\/strong> <code>cloc<\/code> erkennt automatisch \u00fcber 180 verschiedene Sprachen.<\/li>\n\n\n\n<li><strong>Detaillierte Analyse:<\/strong> Es unterscheidet zwischen Codezeilen, Kommentaren und Leerzeilen.<\/li>\n\n\n\n<li><strong>Plattformunabh\u00e4ngigkeit:<\/strong> <code>cloc<\/code> l\u00e4uft auf Linux, macOS und Windows.<\/li>\n\n\n\n<li><strong>Einfache Bedienung:<\/strong> Mit wenigen Befehlen lassen sich umfassende Berichte erstellen.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Installation von <code>cloc<\/code><\/h2>\n\n\n\n<p>Die Installation von <code>cloc<\/code> ist unkompliziert und variiert je nach Betriebssystem:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Linux<\/h3>\n\n\n\n<p>Auf Debian- oder Ubuntu-basierten Systemen:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo apt update\nsudo apt install cloc\n<\/code><\/span><\/pre>\n\n\n<p>Auf Fedora oder CentOS:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo dnf install cloc\n<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\">macOS<\/h3>\n\n\n\n<p>Mit Homebrew:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">brew install cloc\n<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Windows<\/h3>\n\n\n\n<p>Laden Sie die ausf\u00fchrbare Datei von der <a href=\"https:\/\/github.com\/AlDanial\/cloc\">offiziellen cloc-Website<\/a> herunter oder verwenden Sie <a href=\"https:\/\/chocolatey.org\/\">Chocolatey<\/a>:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">choco install cloc\n<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Alternative: Docker<\/h3>\n\n\n\n<p>Falls Docker auf Ihrem System installiert ist, k\u00f6nnen Sie <code>cloc<\/code> direkt als Container ausf\u00fchren:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">docker run --rm -v $(pwd):<span class=\"hljs-regexp\">\/app --workdir \/<\/span>app aldanial\/cloc .\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Verwendung von <code>cloc<\/code> f\u00fcr Java-Projekte<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. Grundlegende Anwendung<\/h3>\n\n\n\n<p>Um die Anzahl der Codezeilen in einem Java-Projekt zu analysieren, wechseln Sie in das Hauptverzeichnis des Projekts und f\u00fchren Sie den folgenden Befehl aus:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">cloc .\n<\/code><\/span><\/pre>\n\n\n<h4 class=\"wp-block-heading\">Beispielausgabe:<\/h4>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">-------------------------------------------------------------------------------\nLanguage                     files          blank        comment           code\n-------------------------------------------------------------------------------\nJava                             3             15             12             85\nXML                              2              5              0             20\n-------------------------------------------------------------------------------\nSUM:                             5             20             12            105\n-------------------------------------------------------------------------------\n<\/code><\/span><\/pre>\n\n\n<p><strong>Erkl\u00e4rung der Spalten:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Language:<\/strong> Die erkannte Programmiersprache.<\/li>\n\n\n\n<li><strong>files:<\/strong> Anzahl der analysierten Dateien.<\/li>\n\n\n\n<li><strong>blank:<\/strong> Anzahl der Leerzeilen.<\/li>\n\n\n\n<li><strong>comment:<\/strong> Anzahl der Kommentarzeilen.<\/li>\n\n\n\n<li><strong>code:<\/strong> Anzahl der Codezeilen.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">2. Nur Java-Dateien analysieren<\/h3>\n\n\n\n<p>Falls Ihr Projekt auch andere Dateitypen wie XML oder YAML enth\u00e4lt, k\u00f6nnen Sie die Analyse auf Java-Dateien beschr\u00e4nken:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">cloc --<span class=\"hljs-keyword\">include<\/span>-lang=Java .\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 class=\"wp-block-heading\">Beispielausgabe:<\/h4>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">-------------------------------------------------------------------------------\nLanguage                     files          blank        comment           code\n-------------------------------------------------------------------------------\nJava                             3             15             12             85\n-------------------------------------------------------------------------------\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">3. Ausschluss bestimmter Dateien oder Verzeichnisse<\/h3>\n\n\n\n<p><code>cloc<\/code> erlaubt es, bestimmte Dateien oder Verzeichnisse auszuschlie\u00dfen. Um z. B. das <code>test<\/code>-Verzeichnis von der Analyse auszunehmen:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">cloc . --exclude-dir=test\n<\/code><\/span><\/pre>\n\n\n<p>Oder um Dateien mit bestimmten Namen auszuschlie\u00dfen:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">cloc . --exclude-ext=xml,yml\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">4. Ausgabe in einer Datei speichern<\/h3>\n\n\n\n<p>Um die Analyse in einer Datei zu speichern, k\u00f6nnen Sie die Standard-Output-Umleitung verwenden:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">cloc<\/span> . &gt; <span class=\"hljs-selector-tag\">cloc_report<\/span><span class=\"hljs-selector-class\">.txt<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Alternativ k\u00f6nnen Sie das integrierte JSON- oder CSV-Exportformat verwenden:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">cloc<\/span> . <span class=\"hljs-selector-tag\">--json<\/span> &gt; <span class=\"hljs-selector-tag\">cloc_report<\/span><span class=\"hljs-selector-class\">.json<\/span>\n<span class=\"hljs-selector-tag\">cloc<\/span> . <span class=\"hljs-selector-tag\">--csv<\/span> &gt; <span class=\"hljs-selector-tag\">cloc_report<\/span><span class=\"hljs-selector-class\">.csv<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">5. Vergleich von Code\u00e4nderungen zwischen zwei Versionen<\/h3>\n\n\n\n<p><code>cloc<\/code> kann auch Unterschiede zwischen zwei Projektversionen analysieren. Hierf\u00fcr ben\u00f6tigen Sie zwei Verzeichnisse, die die alten und neuen Versionen des Projekts enthalten:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">cloc old_version\/ new_version\/ --diff\n<\/code><\/span><\/pre>\n\n\n<h4 class=\"wp-block-heading\">Beispielausgabe:<\/h4>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">-------------------------------------------------------------------------------\nLanguage                     files     added       removed     modified  code_diff\n-------------------------------------------------------------------------------\nJava                             2         30            5           10         25\n-------------------------------------------------------------------------------\n<\/code><\/span><\/pre>\n\n\n<p><strong>Erkl\u00e4rung der Spalten:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>added:<\/strong> Anzahl der hinzugef\u00fcgten Zeilen.<\/li>\n\n\n\n<li><strong>removed:<\/strong> Anzahl der entfernten Zeilen.<\/li>\n\n\n\n<li><strong>modified:<\/strong> Anzahl der ge\u00e4nderten Zeilen.<\/li>\n\n\n\n<li><strong>code_diff:<\/strong> Netto-Differenz der Codezeilen.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Erweiterte Funktionen von <code>cloc<\/code><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. Analyse gro\u00dfer Projekte<\/h3>\n\n\n\n<p><code>cloc<\/code> skaliert gut f\u00fcr gro\u00dfe Projekte. Wenn Sie die Analyse beschleunigen m\u00f6chten, k\u00f6nnen Sie die Option <code>--vcs<\/code> verwenden, um nur Dateien zu ber\u00fccksichtigen, die unter Versionskontrolle stehen:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">cloc . --vcs=git\n<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\">2. Spracherkennung anpassen<\/h3>\n\n\n\n<p><code>cloc<\/code> erkennt automatisch die meisten Programmiersprachen. Falls eine Sprache nicht korrekt erkannt wird, k\u00f6nnen Sie sie manuell festlegen:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">cloc . --force-lang=Java\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Fazit<\/h2>\n\n\n\n<p><code>cloc<\/code> ist ein unverzichtbares Werkzeug, um schnell und pr\u00e4zise die Anzahl der Codezeilen in Java-Projekten zu ermitteln. Es zeichnet sich durch seine Benutzerfreundlichkeit, hohe Anpassbarkeit und detaillierten Berichte aus. Egal, ob Sie ein kleines Projekt analysieren oder die Codeentwicklung in einem gro\u00dfen Team \u00fcberwachen m\u00f6chten \u2013 <code>cloc<\/code> liefert Ihnen wertvolle Einblicke in Ihren Quellcode.<\/p>\n\n\n\n<p>Durch Funktionen wie die Unterscheidung zwischen Code, Kommentaren und Leerzeilen sowie den Vergleich zwischen verschiedenen Versionen ist <code>cloc<\/code> weit mehr als nur ein einfacher Zeilenz\u00e4hler. Probieren Sie es aus, und \u00fcberzeugen Sie sich selbst von seiner Vielseitigkeit!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Analyse von Codezeilen (Lines of Code, kurz LOC) ist ein g\u00e4ngiges Verfahren, um den Umfang und die Struktur eines Softwareprojekts zu bewerten. Mit dem Tool cloc (Count Lines of Code) l\u00e4sst sich dies einfach und effizient bewerkstelligen. cloc ist ein leistungsstarkes, plattform\u00fcbergreifendes Open-Source-Tool, das speziell f\u00fcr die Analyse von Quellcode entwickelt wurde. Es kann [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-518","post","type-post","status-publish","format-standard","hentry","category-plain_java"],"_links":{"self":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/518","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=518"}],"version-history":[{"count":1,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/518\/revisions"}],"predecessor-version":[{"id":519,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/518\/revisions\/519"}],"wp:attachment":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=518"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=518"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}