Java service Development involving test, SAST (Sonar), Containerisation, Versioning can become complicated. Creating multiple steps with Environment variables, CI specific plugins and DockerFile is time wasted. With maven plug-ins you can automate it saving lot of effort. By smartly chaining free plugins for sonar / git and docker, you can create a build artefact in one step rather than individual step reducing build time and cost whilst being compliant to your standards.
Example Implementation
Implementation Guide & Expections
In the above provided example / gist we leverage...
-
jacoco-maven-plugin, sonar-maven-plugin for SAST scanning. Line 86-118
-
git-commit-id-maven-plugin, To inject git meta-data into the build as variables. Line 70-73
-
kubernetes-maven-plugin, sonar-maven-plugin for SAST scanning. Line 119-164
Expected Outcome
Conclusion
By effectively chaining Maven plugins for Sonar scanning, Docker image building, and Git metadata extraction, you can establish a robust and automated CI/CD pipeline. This approach not only streamlines your development workflow but also significantly enhances the quality and maintainability of your software.
- Improved Code Quality : Continuous Sonar analysis provides invaluable insights into code quality, identifying potential issues early on.
- Enhanced Release Management : Automating the build, tagging, and versioning process with Git metadata ensures consistent and reliable releases.
- Streamlined Deployment : Dockerizing your application simplifies deployment across various environments, making it more efficient and less error-prone.
- Increased Transparency : By leveraging Git metadata, you gain a clear and auditable history of every release, improving traceability and facilitating easier rollbacks if needed.
By implementing this chained plugin strategy, you can foster a culture of continuous improvement, deliver high-quality software more efficiently, and ultimately achieve faster time-to-market with reduced risk.

