Explanation of nouns:
BOM (bill of materials): A good way to solve jar package dependencies.
Spring IO Platform
Origin: Spring initially focused on IOC and AOP, but now it has developed into a huge system. For example, security, mvc, etc. In this way, when different modules are integrated with external components, dependency processing requires their respective version numbers. For example, the integration of newer springs and older quartz will encounter problems, which will cause inconvenience to build and upgrade. Therefore, Spring IO Platform came into being, as long as it is introduced into the project, dependencies do not require a version number when integrating externally. The original text of the official website is as follows: "when you do declare a dependency on something that's part of the Platform, you will now be able to omit the version number."
As an example:
<code style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size: undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="box-sizing: border-box; color: rgb(0, 0, 136);">dependentities</span>></span> <span style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="box-sizing: border-box; color: rgb(0, 0, 136);">dependent</span>></span> <span style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="box-sizing: border-box; color: rgb(0, 0, 0, 136);">groupId</span>></span>org.springframework<span style="color: rgb(0, 102, 102); box-sizing: border-box;"></<span style="box-sizing: border-box; color: rgb(0, 0, 136);">groupId</span>></span> <span style="color: rgb(0, 102, 102); box-sizing: border-box;"></<span style="box-sizing: border-box; color: rgb(0, 0, 0, 136);">dependency</span>></span> <span style="color: rgb(0, 102, 102); box-sizing: border-box;"></<span style="box-sizing: border-box; color: rgb(0, 0, 136);">dependencies</span>></span></code><ul style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li></ul>
Spring IO Platform is just a pom file that records the versions of spring and other open source projects. The version number is eliminated, so the problem of handling dependencies is eliminated, because there is the optimal version configuration in Spring IO Platform.
Spring-related BOM
Of course, in order to resolve these Jar conflicts, SpringSource has launched various BOMs. Of course, the most famous one is spring platform io bom, the three most core ones are: spring-framework-bom, spring-boot-dependencies, and platform-bom.
For Spring projects, adding the following configuration code directly to the pom.xml file can eliminate the problem of managing version conflicts.
<code style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size: undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="box-sizing: border-box; color: rgb(0, 0, 136);">dependentManagement</span>></span> <span style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="box-sizing: border-box; color: rgb(0, 0, 136);">dependent</span>></span> <span style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="box-sizing: border-box; color: rgb(0, 0, 136);">dependent</span>></span> <span style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="box-sizing: border-box; color: rgb(0, 0, 136);">groupId</span>></span>org.springframework<span style="color: rgb(0, 102, 102); box-sizing: border-box;"></<span style="box-sizing: border-box; color: rgb(0, 0, 136);">groupId</span>></span> <span style="color: rgb(0, 102, 102); box-sizing: border-box;"></<span style="box-sizing: border-box; color: rgb(0, 0, 136);">groupId</span>></span> <span style="color: rgb(0, 0, 136);">groupId</span>></span> <span style="color: rgb(0, 0, 136); 102, 102); box-sizing: border-box;"><<span style="box-sizing: border-box; color: rgb(0, 0, 136);">artifactId</span>></span>spring-framework-bom<span style="color: rgb(0, 102, 102); box-sizing: border-box;"></<span style="box-sizing: border-box; color: rgb(0, 0, 136);">artifactId</span>></span> <span style="color: rgb(0, 102, 102); box-sizing: border-box;"></span style="box-sizing: border-box; color: rgb(0, 0, 136);">artifactId</span>></span> <span style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="box-sizing: border-box; color: rgb(0, 0, 136);">version</span>></span>4.2.0.RELEASE<span style="color: rgb(0, 102, 102); box-sizing: border-box;"></span style="box-sizing: border-box; color: rgb(0, 0, 136);">version</span>></span> <span style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="box-sizing: border-box;"></span style="box-sizing: border-box;"></span style="box-sizing: border-box;"></span style="box-sizing: border-box;"></span style="box-sizing: border-box;"></span style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="box-sizing: border-box;"></span style="box-sizing: border-box;"></span style="box-sizing: border-box;"></span style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="box style="box-sizing: border-box; color: rgb(0, 0, 136);">type</span>></span>pom<span style="color: rgb(0, 102, 102); box-sizing: border-box;"></<span style="box-sizing: border-box; color: rgb(0, 0, 136);">type</span>></span> <span style="box-sizing: border-box; color: rgb(0, 0, 136);">type</span>></span> <span style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="box-sizing: border-box; color: rgb(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 136);">scope</span>></span>import<span style="color: rgb(0, 102, 102); box-sizing: border-box;"></<span style="box-sizing: border-box; color: rgb(0, 0, 136);">scope</span>></span> <span style="color: rgb(0, 102, 102); box-sizing: border-box;"></<span style="box-sizing: border-box; color: rgb(0, 0, 136);">dependency</span>></span> <span style="box-sizing: border-box; color: rgb(0, 0, 136);">dependency</span>></span> <span style="box-sizing: border-box; color: rgb(0, 0, 136);">dependency</span>></span> <span style="box-sizing: border-box; color: rgb(0, 0, 136);">dependency</span>></span> <span style="box-sizing: border-box; color: rgb(0, 0, 136);">dependency</span>></span> <span style="box-sizing: border-box; color: rgb(0, 0, 136);">dependency</span>></span> <span style="box-sizing: border-box; color: rgb(0, 0, 136);">dependency</span>></span> <span style="box-sizing: border-box; color: rgb(0, 0, 136);"> style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="box-sizing: border-box; color: rgb(0, 0, 136);">dependency</span>></span> <span style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="box-sizing: border-box; color: rgb(0, 0, 136);">groupId</span>></span>org.springframework.boot<span style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="box-sizing: border-box; color: rgb(0, 0, 136);">groupId</span>></span>org.springframework.boot<span style="color: rgb(0, 0, 136);">groupId</span>></span>org.springframework.boot<span style="color: rgb(0, 0, 136);"><<span style="box-sizing: border-box; color: rgb(0, 0, 136);">groupId</span>></span>org.springframework.boot<span style="color: rgb(0, 0, 136);">groupId</span>></span>org.springframework.boot<span style="color: rgb(0, 0, 136);"><<span style="box-sizing: border-box; color: rgb(0, 0, 136);">groupId</span>></span>org.springframework.boot<span style="color: rg 102, 102); box-sizing: border-box;"></<span style="box-sizing: border-box; color: rgb(0, 0, 136);">artifactId</span>></span> spring-boot-dependencies<span style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="box-sizing: border-box; color: rgb(0, 0, 136);">artifactId</span>></span>spring-boot-dependencies<span style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="box-sizing: border-box; color: rgb(0, 0, 136);">artifactId</span>></span>spring-boot-dependencies<span style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="box-sizing: border-box; color: rgb(0, 0, 136);">artifactId</span>></span>spring-boot-dependencies<span style="color: rgb(0, 102, 102); box-sizing: border-box;"></<span style="box-sizing: border-box; color: rgb(0, 0, 136);">artifactId</span>></span> <span style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="box-sizing: border-box; color: rgb(0, 0, 136);">version</span>></span>1.3.0.M2<span style="color: rgb(0, 102, 102); box-sizing: border-box;"></<span style="box-sizing: border-box;"></span style="box-sizing: border-box;"></span style="box-sizing: border-box;"></span style="box-sizing: border-box;"></span style="box-sizing: border-box;"></span style="box-sizing: border-box;"></span style="box-sizing: border-box;"></span style="box-sizing: border-box;"></span style="box-sizing: border-box;"></span style="box-sizing: border-box;"></span style="color: rgb(0, 102, 102); box-sizing: border-box;"></span style="color: rgb(0, 102, 102); box-sizing: border-box;"></span style="color: rgb(0, 102, 102); box-sizing: border-box;"></span style="color: rgb(0, 102, 102); box-sizing: border-box;"></span style="color: rgb(0, 102, 102); box-sizing: border-box;"></span style style="box-sizing: border-box; color: rgb(0, 0, 136);">version</span>></span> <span style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="box-sizing: border-box; color: rgb(0, 0, 136);">type</span>></span>pom<span style="color: rgb(0, 102, 102); box-sizing: border-box;"></span style="box-sizing: border-box; color: rgb(0, 0, 136);">type</span>></span style="box-sizing: border-box; color: rgb(0, 0, 136);">type</span>></span style="box-sizing: border-box; color: rgb(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 136);">type</span>></span> <span style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="box-sizing: border-box; color: rgb(0, 0, 136);">scope</span>></span>import<span style="color: rgb(0, 102, 102); box-sizing: border-box;"></span style="box-sizing: border-box; color: rgb(0, 0, 136);">scope</span>></span> <span style="color: rgb(0, 102, 102); box-sizing: border-box;"></span style="box-sizing: border-box; color: rgb(0, 0, 136);">scope</span>></span> <span style="color: rgb(0, 102, 102); box-sizing: border-box;"></<span style="box-sizing: border-box; color: rgb(0, 0, 136);">dependent</span>></span> <span style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="box-sizing: border-box; color: rgb(0, 0, 136);">dependent</span>></span> <span style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="box-sizing: border-box; color: rgb(0, 0, 136);">dependent</span>></span> <span style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="box-sizing: border-box; color: rgb(0, 0, 136);">groupId</span>></span>io.spring.platform<span style="color: rgb(0, 102, 102); box-sizing: border-box;"></span style="box-sizing: border-box; color: rgb(0, 0, 136);">groupId</span>></span> <span style="color: rgb(0, 102, 102); box-sizing: border-box;"></span style="box-sizing: border-box;"></span style="box-sizing: border-box;"></span style="box-sizing: border-box;"></span style="box-sizing: border-box;"></span style="box-sizing: border-box;"></span style="box-sizing: border-box;"></span style="box-sizing: border-box;"></span style="color: rgb(0, 102, 102); box-sizing: border-box;"></span style="color: rgb(0, 102, 102); box-sizing: border-box;"></span style="box-sizing: border-box;"></span style="box-sizing: border-box;"></span style="box-sizing: border-box;"></span style="box-sizing: border-box;"></span style="box-sizing: border-box;"></span style="font-sizing: border-box;"></span style="font-sizing: border-box;"></span style="font-sizing: border-box;"></span style="font-sizing: border-box;"></span style="font-sizing: border-box;">< style="box-sizing: border-box; color: rgb(0, 0, 136);">artifactId</span>></span>platform-bom<span style="color: rgb(0, 102, 102); box-sizing: border-box;"></<span style="box-sizing: border-box; color: rgb(0, 0, 136);">artifactId</span>></span> <span style="color: rgb(0, 102, 102); box-sizing: border-box;"></span style="box-sizing: border-box; color: rgb(0, 0, 136);">version</span>></span>1.1.3.RELEASE<span style="color: rgb(0, 102, 102); box-sizing: border-box;"></<span style="box-sizing: border-box; color: rgb(0, 0, 136);">version</span>></span> <span style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="box-sizing: border-box; color: rgb(0, 0, 136);">version</span>></span> <span style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="box-sizing: border-box; color: rgb(0, 0, 0, 136);">type</span>></span>pom<span style="color: rgb(0, 102, 102); box-sizing: border-box;"></<span style="box-sizing: border-box; color: rgb(0, 0, 136);">type</span>></span> <span style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="box-sizing: border-box; color: rgb(0, 0, 136);">scope</span>></span>import<span style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span style="box-sizing: border-box; color: rgb(0, 0, 136);">scope</span>></span>import<span style="color: rgb(0, 102, 102); box-sizing: border-box;"></<span style="box-sizing: border-box; color: rgb(0, 0, 136);">scope</span>></span> <span style="color: rgb(0, 102, 102); box-sizing: border-box;"></<span style="box-sizing: border-box; color: rgb(0, 0, 136);">dependent</span>></span> <span style="color: rgb(0, 102, 102); box-sizing: border-box;"></<span style="box-sizing: border-box; color: rgb(0, 0, 136);">dependent</span>></span> <span style="color: rgb(0, 102, 102); box-sizing: border-box;"></<span style="box-sizing: border-box; color: rgb(0, 0, 136);">dependents</span>></span> <span style="color: rgb(0, 102, 102); box-sizing: border-box;"></<span style="box-sizing: border-box; color: rgb(0, 0, 136);">dependentManagement</span>></span></code><ul style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li></ul>
Reference article
Introduction to spring io platform
Summarize
The above is the entire content of this article about a brief discussion on Spring's solution to the bom dependencies of jar packages. I hope it will be helpful to everyone. Interested friends can continue to refer to other related topics on this site. If there are any shortcomings, please leave a message to point it out. Thank you friends for your support for this site!