{"id":21737,"date":"2024-05-24T14:48:34","date_gmt":"2024-05-24T12:48:34","guid":{"rendered":"http:\/\/blog.wenzlaff.de\/?p=21737"},"modified":"2024-05-24T15:02:21","modified_gmt":"2024-05-24T13:02:21","slug":"lieben-dank-fuer-die-neue-archunit-1-3-0-version-mit-support-fuer-java-23","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=21737","title":{"rendered":"Lieben Dank f\u00fcr die neue ArchUnit 1.3.0 Version mit Support f\u00fcr Java 23"},"content":{"rendered":"<p>Das Java Framework <a href=\"https:\/\/www.archunit.org\/\" rel=\"noopener\" target=\"_blank\">ArchUnit<\/a> ist ein leistungsstarkes Werkzeug f\u00fcr die Gew\u00e4hrleistung von Softwarearchitektur und Code-Qualit\u00e4t in Java-Projekten. Die Entwicklung von Softwareanwendungen wird immer komplexer und anspruchsvoller. Um sicherzustellen, dass Softwareprojekte effizient, skalierbar und wartbar sind, ist die Einhaltung einer soliden Softwarearchitektur und Code-Qualit\u00e4t von entscheidender Bedeutung. Hier kommt das Java Framework ArchUnit ins Spiel, das sich als unverzichtbares Werkzeug f\u00fcr die \u00dcberpr\u00fcfung und Aufrechterhaltung dieser Standards etabliert hat. <\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/05\/lieben-dank.mp4.gif\" alt=\"\" width=\"512\" height=\"288\" class=\"aligncenter size-full wp-image-21741\" \/><\/p>\n<p>ArchUnit ist ein Open-Source-Framework f\u00fcr statische Codeanalyse in Java-Anwendungen. Es wurde entwickelt, um Entwicklern und Architekten dabei zu helfen, die Einhaltung von vordefinierten Architekturrichtlinien und -regeln in ihrem Java-Code sicherzustellen. Das Framework erm\u00f6glicht es, Architekturvorgaben in Form von Java-Codeausdr\u00fccken zu definieren und automatisierte Tests zu schreiben, um sicherzustellen, dass diese Vorgaben im gesamten Projekt eingehalten werden. Die<a href=\"https:\/\/www.archunit.org\/userguide\/html\/000_Index.html#_maven_plugin\" rel=\"noopener\" target=\"_blank\"> neue Version<\/a> die vor ein paar Wochen ver\u00f6ffentlicht worden mal eben einem Quicktest unterziehen. <!--more--><\/p>\n<p>Anpassen:<\/p>\n<pre class=\"lang:xhtml decode:true \" >\r\n\r\n&lt;!-- Architektur validation --&gt;\r\n\t\t&lt;dependency&gt;\r\n\t\t\t&lt;groupId&gt;com.tngtech.archunit&lt;\/groupId&gt;\r\n\t\t\t&lt;artifactId&gt;archunit-junit5&lt;\/artifactId&gt;\r\n\t\t\t&lt;version&gt;1.3.0&lt;\/version&gt;\r\n\t\t\t&lt;scope&gt;test&lt;\/scope&gt;\r\n\t\t&lt;\/dependency&gt;\r\n\t\t&lt;dependency&gt;\r\n\t\t\t&lt;groupId&gt;com.tngtech.archunit&lt;\/groupId&gt;\r\n\t\t\t&lt;artifactId&gt;archunit&lt;\/artifactId&gt;\r\n\t\t\t&lt;version&gt;1.3.0&lt;\/version&gt;\r\n\t\t\t&lt;scope&gt;test&lt;\/scope&gt;\r\n\t\t&lt;\/dependency&gt;\r\n\t\t&lt;dependency&gt;\r\n\t\t\t&lt;groupId&gt;com.tngtech.archunit&lt;\/groupId&gt;\r\n\t\t\t&lt;artifactId&gt;archunit-junit5-api&lt;\/artifactId&gt;\r\n\t\t\t&lt;version&gt;1.3.0&lt;\/version&gt;\r\n\t\t\t&lt;scope&gt;test&lt;\/scope&gt;\r\n\t\t&lt;\/dependency&gt;\r\n\r\n<\/pre>\n<p>Es l\u00e4uft wie vorher, mit diesen <a href=\"https:\/\/github.com\/TNG\/ArchUnit\/releases\/tag\/v1.3.0\" rel=\"noopener\" target=\"_blank\">Anpassungen bzw. News<\/a>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/05\/archunit-1.3.0.png\" alt=\"\" width=\"4228\" height=\"1342\" class=\"aligncenter size-full wp-image-21740\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/05\/archunit-1.3.0.png 4228w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/05\/archunit-1.3.0-300x95.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/05\/archunit-1.3.0-1024x325.png 1024w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/05\/archunit-1.3.0-768x244.png 768w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/05\/archunit-1.3.0-1536x488.png 1536w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/05\/archunit-1.3.0-2048x650.png 2048w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/p>\n<pre class=\"lang:default decode:true \" >Bug Fixes\r\n\r\n    Fix ArchUnit importer being unable to import classes from Spring Boot Nested jars \r\n    Fix OnionArchitecture losing withOptionalLayers() on description override\r\n    Fix JavaType.getAllInvolvedRawTypes() recursing infinitely for recursive type definitions \r\n    Fix @ArchTest fields in base classes of @ArchIgnored classes not being ignored )\r\n\r\nEnhancements\r\nCore\r\n\r\n    Add support for Java 23 \r\n    New method JavaType.traverseSignature(..) to examine parts of a type signature more conveniently \r\n\r\nLang\r\n\r\n    Make handling specific violating object types with ViolationHandler more convenient \r\n\r\nLibrary\r\n\r\n    Jakarta EE annotations are now considered in GeneralCodingRules.NO_CLASSES_SHOULD_USE_FIELD_INJECTION\r\n    PlantUML rules now ignore dependencies between unparsable objects (e.g. a database instead of a regular component) \r\n    PlantUML rules now optionally support the component keyword in component [Example] &lt;&lt;..example..&gt;&gt; \r\n\r\nJUnit\r\n\r\n    @ArchTests included via ArchTests.in(..) now report their full \"inclusion path\" in the test report \r\n    Specific @ArchTest rules can now be executed by setting the ArchUnit property junit.testFilter=rule_field_name \/ setting the system property -Darchunit.junit.testFilter=... \r\n\r\n<\/pre>\n<p>Und auch die Blockchain l\u00e4uft:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/05\/archunit-test.png\" alt=\"\" width=\"804\" height=\"442\" class=\"aligncenter size-full wp-image-21743\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/05\/archunit-test.png 804w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/05\/archunit-test-300x165.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2024\/05\/archunit-test-768x422.png 768w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Das Java Framework ArchUnit ist ein leistungsstarkes Werkzeug f\u00fcr die Gew\u00e4hrleistung von Softwarearchitektur und Code-Qualit\u00e4t in Java-Projekten. Die Entwicklung von Softwareanwendungen wird immer komplexer und anspruchsvoller. Um sicherzustellen, dass Softwareprojekte effizient, skalierbar und wartbar sind, ist die Einhaltung einer soliden Softwarearchitektur und Code-Qualit\u00e4t von entscheidender Bedeutung. Hier kommt das Java Framework ArchUnit ins Spiel, das &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/blog.wenzlaff.de\/?p=21737\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eLieben Dank f\u00fcr die neue ArchUnit 1.3.0 Version mit Support f\u00fcr Java 23\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[220,4999,4,79,2658],"tags":[107,4843,364,2178,379,2095],"class_list":["post-21737","post","type-post","status-publish","format-standard","hentry","category-anleitung","category-archunit","category-eclipse","category-programmierung","category-test-thema","tag-architektur","tag-archunit","tag-code","tag-java","tag-software","tag-ueberpruefen"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/21737","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=21737"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/21737\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=21737"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=21737"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=21737"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}