Hi Robert. Further down that page you can read about exclusions. So you can make X depend on L but with an exclusion:
<dependency> <artifactId>Z</artifactId> <version>2.0.0</version> </dependency> <dependency> <artifactId>L</artifactId> <exclusions> <exclusion> <artifactId>Z</artifactId> </exclusion> </exclusions> </dependency> Delany On Tue, 11 Jan 2022 at 19:40, Roberto Simoni <rsimoni....@gmail.com> wrote: > Hi everyone, I have a question for you. > In my company, a team decided to remove periodically versions of a > library/application-framework. > So what happens is that every n months we have to update all softwares to > the newer versions. > > There is an aspect that I do not understand and I'd like to ask you my > question making an example. > Imagine that the library where versions are removed is called Z. > You have a project X depending on a library L that is using Z, but also X > is using Z. > In X we update the version of Z to 2.0.0 > In X, the version of L is still using Z 1.0.0 which is removed. > > I though that you could build X anyway, because the most recent version of > Z (while building X) is the 2.0.0, instead it fails because it tries to > resolve Z 1.0.0 while compiling X when it finds that X is using Z 1.0.0 > > Is there any reason behind this decision? > Looking at the this page > < > https://maven.apache.org/pom.html#dependency-version-requirement-specification > > > page, I though that it was not required to update every lib if it find a > most recent version of it. > > Regards > R >