paint-brush
Maven “Bill Of Materials” Dependencyby@gaurav.agrawal
7,389 reads
7,389 reads

Maven “Bill Of Materials” Dependency

by Gaurav AgrawalMarch 26th, 2017
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

<code class="markup--code markup--p-code"><a href="https://coinmonks.com" target="_blank">Find blockchain jobs using Coinmonks jobs portal</a></code>

Company Mentioned

Mention Thumbnail
featured image - Maven “Bill Of Materials” Dependency
Gaurav Agrawal HackerNoon profile picture

Click to Find blockchain Jobs

[Find blockchain jobs using Coinmonks jobs portal](https://coinmonks.com)

[**_Get published on Coinmonks_**](https://medium.com/coinmonks/contribute/home)

It is possible to accidentally mix different versions of Spring JARs when using Maven. For example, you may find that a third-party library, or another Spring project, pulls in a transitive dependency to an older release. If you forget to explicitly declare a direct dependency yourself, all sorts of unexpected issues can arise.

To overcome such problems Maven supports the concept of a “bill of materials” (BOM) dependency. You can import the spring-framework-bom in your dependencyManagement section to ensure that all spring dependencies (both direct and transitive) are at the same version.











<dependencyManagement><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-framework-bom</artifactId><version>4.3.7.RELEASE</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>

An added benefit of using the BOM is that you no longer need to specify the <version> attribute when depending on Spring Framework artifacts:










<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId></dependency><dependencies>

N0te : It’s simply copy paste from here , but you did learn a new thing if u didn’t already know this :)