The maven-pmd-plugin is another source of possible quality gates for our java build. It can help ensure that we only release code that meets the team's quality standards. #java #mavenBuild #qualityGates #maven-pmd-plugin

http://codingchica.com/2023/10/19/adding-maven-pmd-plugin/

Automating Parts of the Peer Review – Part 2! Adding Maven PMD Plugin

Different static code analysis plugins will catch different issues. As long as we are now slowing down the build too much, we may still benefit from also adding the maven-pmd-plugin to the build as…

Coding Chica

Static code analysis, such as that provided by spotbugs-maven-plugin, can help ease the code review burden and get early feedback on performance, style and possible functionality issues. #java #mavenBuild #maven #staticCodeAnalysis

http://codingchica.com/2023/10/16/adding-spotbugs-a-static-code-analysis-plugin/

Automating Parts of the Peer Review – Part 1! Adding SpotBugs Maven Plugin for Static Code Analysis

A static code analysis tool, like spotbugs-maven-plugin will not replace an actual peer review, but it may help reduce the load that peer reviewers carry in the analysis. Anyone can make a mistake …

Coding Chica

Certain plugins, such as those for static code analysis may not repeat the source code in their own reports, but rather prefer to deep link to source code report references when reporting issues / concerns. #java #mavenBuild #site #reports #source

http://codingchica.com/2023/10/12/java-sources-cross-referencing-reports/

Show Me the Source! Java Sources Cross Referencing Reports

By generating Java Cross Reference (JXR) reports in our Maven site, we enable deep links in other reports, such as static code analysis plugin reports.

Coding Chica

Layering tests and quality gates helps ensure that the team has the earliest feedback as fast as possible. It can also help catch issues ahead of peer feedback in pull requests. #java #mavenBuild #cicd #testing #testingPyramid

http://codingchica.com/2023/10/09/testing-pyramid-intro-build-steps/

Isn’t Unit Testing Enough? A Testing Pyramid Intro – The Build Steps

Delivering high-quality, reliable code as quickly as possible requires a layered testing strategy. We want to find issues as early as possible, so they are cheaper and faster to fix. Let’s di…

Coding Chica

Existing Java projects can also benefit from a Maven JaCoCo code coverage quality gate, but we have to ensure that the build doesn't break for existing classes when we add the new check. #mavenBuild #java #unitTesting #testing #qualityGate

http://codingchica.com/2023/10/02/adding-jacoco-quality-gate-to-an-existing-code-base/

Adding JaCoCo Quality Gate to an existing code base

We can add a unit test code coverage quality gate to an existing Java project’s Maven build, but we have a few extra steps to ensure that the build does not break.

Coding Chica

By adding the site goal to our Maven build command, we can generate basic reports about the Java project based upon the pom.xml configuration. #MavenBuild #java #report #site #documentation

http://codingchica.com/2023/09/25/project-reports-generating-a-simple-maven-site-in-the-build/

Project Reports! Generating a Simple Maven Site in the Build

By adding the site goal to our Maven build command, we can quickly start generating basic project reports.

Coding Chica

Different scopes for Maven dependencies will let us control how that dependency is used in our Maven build, as well as any places that consume our Maven artifacts. #java #MavenBuild #dependencies

http://codingchica.com/2023/09/21/maven-dependency-scopes/

Maven Dependency Scopes

Maven build dependencies usage can be controlled using the scope element, whether that dependency should be used in compilation, test, runtime or as a transitive dependency.

Coding Chica

To avoid class name collisions between similar classes, we can group them into packages/folders. Doing so can also help identify code ownership. #java #packages #syntax #mavenBuild

http://codingchica.com/2023/09/11/avoid-the-mess-java-packages/

Avoid the Mess! Java Packages

Java packages can help us quickly find the code we need and avoid naming collisions with similar classes.

Coding Chica