Skip to main content


Why and What to Validate in a Maven POM xml File

Following are some of the ways you can validate a pom.xml file:

  • Maven itself validates some basic things that it need to build your project
  • Manually Review pom.xml for projects and modules against a checklist to make sure everything is correct.
  • Automate using scripting language like Python, Jython.

Buy why would someone perform an extra set of activities that would complicate the development and build process?

Every organization has a set of standards and best practices which should be followed by every person. Organizations may also have development standards or best practices which need to be followed by all in order to make the process consistent.

Following are some cases where you may want to have an automated method of verifying that these conditions are met:

  • All pom.xml have scm element. While this is not needed for the build, if you want to use the maven release you need to make sure it is present.
  • Artifact finalname is not consistent. Some developers want to make the final different and some leave it as default so that maven will automatically combine the artifact id and version to make the final name.
  • We may not want to have a repository location in every pom.xml as this can be controlled by maven settings.xml
  • We may not want developers to have skiptests set as true to skip Junit just to make the build pass.
  • All projects should have the correct groupId which might start with something related to company, org, department etc. All projects should follow in the same way.
  • All projects should have a consistent version naming convention.
  • We may want all projects to have a name element as the full name of the project. For e.g. artifact id can be a shortened name for the application, but name can describe the full name.
  • We may want to make sure developers add description elements to describe details or the purpose of that application.
  • Every project should have a packaging type since maven will default to jar if nothing is specified.


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Susheel Kumar

More from this Author

Follow Us