Три роки тому я рекомендував використовувати Версію 99 Не існує, але зараз я придумав кращий спосіб, тим більше, що Версія 99 офлайн:
У батьківському POM вашого проекту використовуйте плагін maven-Execucer для відмови збірки, якщо небажана залежність проникає в збірку. Це можна зробити за допомогою правила заборонених залежностей плагіна :
<plugin>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.0.1</version>
<executions>
<execution>
<id>only-junit-dep-is-used</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<bannedDependencies>
<excludes>
<exclude>junit:junit</exclude>
</excludes>
</bannedDependencies>
</rules>
</configuration>
</execution>
</executions>
</plugin>
Потім, коли це попередить вас про небажану залежність, виключіть її в розділі батьківського POM <dependencyManagement>
:
<dependency>
<groupId>org.springframework.batch</groupId>
<artifactId>spring-batch-test</artifactId>
<version>2.1.8.RELEASE</version>
<exclusions>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
Таким чином, небажана залежність не з’явиться випадково (на відміну від простої, <exclusion>
яку легко забути), вона не буде доступною навіть під час компіляції (на відміну від provided
сфери застосування), не існує фальшивих залежностей (на відміну від версії 99) і це ' працюю без користувацького сховища (на відміну від Версії 99). Цей підхід працюватиме навіть на основі версії артефакту, класифікаторів, сфери застосування або цілої групиId - детальну інформацію див. У документації .