Il y a trois ans , j'ai recommandé à l'aide de la Version 99 N'Existe Pas, mais maintenant, j'ai trouvé un meilleur moyen, surtout depuis la Version 99 est en mode hors connexion:
Dans votre projet parent POM, utilisez maven-enforcer-plugin à l'échec de la construire si les indésirables de la dépendance se glisse dans la construction. Cela peut être fait en utilisant le plugin est interdit dépendances de la règle:
<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>
Puis lorsque que vous alerte à propos d'un indésirable à la dépendance, de l'exclure dans le POM parent de l' <dependencyManagement>
section:
<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>
De cette façon, les indésirables de la dépendance ne s'affichent pas accidentellement (contrairement à la juste un <exclusion>
qui est facile à oublier), il ne sera pas disponible, même au cours de la compilation (contrairement à provided
de la portée), il n'y a pas de fausses dépendances (contrairement à la Version 99) et ça marchera sans dépôt personnalisée (à la différence de la Version 99). Cette approche sera même travail basé sur l'artefact version, les classificateurs, la portée ou l'intégralité d'un groupId - voir la documentation pour plus de détails.