Comment vérifier les conflits de bibliothèques dans Maven
Date de publication:20 janvier 2021.
INFOMARTION > Comment vérifier les conflits de bibliothèques dans Maven
Vue d'ensemble.
Comment vérifier les conflits de bibliothèques dans Maven. Maven résout automatiquement les dépendances pour la bibliothèque jar, mais la configuration par défaut ne vous informe pas des conflits. Voici comment vérifier les conflits de bibliothèque dans Maven dans de tels cas.
Table des matières
1. Lorsque des conflits de bibliothèque surviennent dans Maven
Maven résout automatiquement les dépendances des bibliothèques Java. La résolution automatique des dépendances signifie que si vous avez un fichier Jar dont vous avez besoin, il obtiendra automatiquement le Jar nécessaire pour exécuter ce Jar. Pour plus d'informations sur le fonctionnement de la résolution des dépendances de bibliothèques spécifiques, consultez l'article suivant.
Comment Maven résout automatiquement les dépendances des bibliothèques jar.
Toutefois, lorsque des conflits de bibliothèque surviennent, ils ne sont pas résolus automatiquement. De plus, si les paramètres ne sont pas en place, vous ne pouvez même pas détecter un conflit. Nous souhaitons vous décrire comment vérifier les conflits entre bibliothèques.
2. Comment vérifier
Il y a deux façons principales de vérifier les conflits de bibliothèque
- Introduction des plug-ins
- Confirmation de la pré-construction par commande.
L'option 'Installer les plug-ins' est une méthode permettant d'ajouter des paramètres à pom.xml. Vérifier avec une commande avant de construire" signifie littéralement vérifier manuellement avec une commande avant de construire. Je voudrais vous expliquer comment procéder concrètement.
2-1. Introduction des plug-ins
Les sites Web Maven suivants peuvent être utiles.
http://maven.apache.org/enforcer/enforcer-rules/dependencyConvergence.html
Ajoutez les paramètres suivants à pom.xml.
<project>
...
<build>
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.0.0-M3</version>
<executions>
<execution>
<id>enforce</id>
<configuration>
<rules>
<dependencyConvergence/>
</rules>
</configuration>
<goals>
<goal>enforce</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
</build>
...
</project>
Si les paramètres ci-dessus sont insérés, l'erreur suivante se produit et la construction échoue s'il y a des conflits de bibliothèque au moment de la construction.
[WARNING]
Dependency convergence error for org.apache.commons:commons-collections4:4.1 paths to dependency are:
+-com.example.todo:todo-web:1.0.0-SNAPSHOT
+-org.apache.poi:poi:3.17
+-org.apache.commons:commons-collections4:4.1
and
+-com.example.todo:todo-web:1.0.0-SNAPSHOT
+-org.apache.commons:commons-collections4:4.0
[WARNING] Rule 0: org.apache.maven.plugins.enforcer.DependencyConvergence failed with message:
Failed while enforcing releasability. See above detailed error message.
Si un build est appliqué sans plug-in, aucune erreur ne se produit et le build se termine normalement. Si vous voulez détecter les conflits, assurez-vous de configurer cette fonction.
2-2. Confirmation de la pré-construction par commande.
Les dépendances sont vérifiées par les commandes suivantes
mvn dependency:tree -Dverbose
et 'omitted for conflict' s'affiche s'il y a un conflit. Il est également possible de réduire la sortie aux seules zones où il y a des conflits, comme dans la commande suivante. ※La commande 'find' est celle de Windows. Pour Linux, il s'agit de 'grep'.
mvn dependency:tree -Dverbose | find "omitted for conflict"
Les conflits de bibliothèques peuvent être vérifiés en regardant les résultats des commandes ci-dessus.
3. résumé
Si vous souhaitez détecter de manière fiable les conflits de bibliothèques, nous vous recommandons d'installer des plug-ins. L'introduction de plug-ins permet de s'assurer que tout conflit est remarqué, car la construction échouera.
Merci d'avoir regardé jusqu'à la fin.
■INFORMATION
Veuillez cliquer ici pour accéder à la page d'accueil d'INFORMATION.
■PROFILE
Veuillez cliquer ici pour un profil.
■Coordonnées de contact.
Pour toute question concernant cet article, veuillez nous contacter ici.