Skip to content

Latest commit

 

History

History
41 lines (34 loc) · 1.4 KB

README.md

File metadata and controls

41 lines (34 loc) · 1.4 KB

Spring Version Management

If you've ever created a moderately complex project which uses Spring, you've likely come across issues having to manage versions of Spring transitive dependencies.

Your project uses Spring 3.1.4.RELEASE, but something else you're depending on imports some otherwise unused Spring module, at 3.0.7. I'm looking at you, Spring Security.

You end up declaring a dependencyManagement entry for just about every Spring module there is, to ensure that anything you bring in uses the correct version.

Enter spring-version

<project>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>com.github.ptomli.spring-version</groupId>
        <artifactId>spring-version</artifactId>
        <version>3.1.4.RELEASE</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>
</project>

spring-version simply declares a dependencyManagement entry for each Spring module, at its own project.version. So, spring-version 3.1.4.RELEASE will result in any Spring transitive dependency being imported at 3.1.4.RELEASE. Done, finished and klaar!

There are companion projects to handle other SpringSource project versions, such as spring-integration-version and spring-security-version