BOM vs Parent POM

less than 1 minute read

Summary:

  • Parent POM: Inherited via <parent>, shares plugins, properties, and dependency management.
  • BOM: Imported via <dependencyManagement>, shares only dependency versions. No plugins or build config inheritance.Summary:

Project Repository: https://github.com/nitinkc/project-parent-pom

Important Differences

A parent POM is a Maven project object model file (pom.xml) with <packaging>pom</packaging>.

It can define shared configuration, plugins, properties, and dependency management. Child projects inherit these settings by referencing the parent in their section.

A BOM (Bill of Materials) is a special POM used only for dependency version management. It is referenced in <dependencyManagement> (usually with <type>pom</type> and <scope>import</scope>), and only manages versions of dependencies, not plugins or build configuration.

Pushing the artifact on github packages:

If using local machine to push the artifact, use settings.xml of .github/ folder

If using github’s default file, ensure the project name matches the artifact name : Commit

<settings>
  <servers>
    <server>
      <id>github</id>
      <username><github_id></username>
      <password><PAT></password>
    </server>
  </servers>
</settings>

Using Jitpack to avoid publishing the artifact

Jitpack is a package repository for JVM and Android projects.