Итак, этот API, который я создаю, использует зависимость (A), которая использует javax-validation: validation-api: 1.1.0-Final. Вместо этого я хочу использовать 2.0.1-Final, поэтому в зависимости (A) я добавил исключение. Затем я добавил зависимость от версии, которую хочу использовать ... После этого я запустил «mvn clean install», запустив mvn dependency: дерево показывает, что я использую правильную версию API-интерфейса validation-api в API.
Проблема, однако, заключается в том, что если я запускаю дерево зависимостей mvn в сервисе, где я добавил свой новый API, старый api validation-api все равно обнаруживается! Я уверен, что он уже использует новый API, потому что когда я просматриваю источники зависимостей, я вижу, что это уже новый pom ...
Я действительно не знаю, что здесь не так ...
API POM:
<dependency>
<groupId>com.xxx.test</groupId>
<artifactId>xxx-test</artifactId>
<version>2.0.4</version>
<exclusions>
<exclusion>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
Дерево API:
[INFO] com.xxx-api:xxx-api:jar:1.0.0-SNAPSHOT
[INFO] +- javax.validation:validation-api:jar:2.0.1.Final:compile
Дерево услуг:
[INFO] +- com.xxx-api:xxx-api:jar:1.0.0-SNAPSHOT:compile
[INFO] | +- com.xxx.test:xxx-test:jar:2.0.4:compile
[INFO] | | +- ....
[INFO] | \- javax.validation:validation-api:jar:1.1.0.Final:compile