Manage dependencies at the top level using `
Manage dependencies at the top level using <dependencyManagement>
to ensure version consistency across modules and prevent conflicts. Define version properties in one place and reference them throughout the project:
<!-- In parent pom.xml -->
<properties>
<jackson.version>2.15.0</jackson.version>
<jmh.version>1.33</jmh.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>${netty.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
In module pom files, reference dependencies without version numbers:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
Avoid:
${project.version}
or ${project.parent.version}
For related but distinct libraries (like Netty 3.x vs 4.x), create separate version properties (e.g., netty3.version
and netty.version
) to clearly distinguish them.
Enter the URL of a public GitHub repository