web-dev-qa-db-fra.com

Un avertissement concernant les spams de Maven Jetty "analysé à partir de plusieurs emplacements"

J'ai trouvé une question similaire ici , mais elle pointe vers un plugin que je n'utilise pas (maven-failsafe-plugin), et la configuration à laquelle cette solution fait référence ne s'applique pas pour moi.

Le problème est que depuis que j'ai mis à jour mon plugin Jetty de 

<groupId>org.Eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.3.9.v20160517</version>

à <version>9.4.11.v20180605</version>, il a commencé à spammer des centaines d'avertissements comme 

[WARNING] org.Apache.axis2.description.Java2wsdl.bytecode.ClassReader scanned from multiple locations: jar:file:///C:/Users/a0763323/.m2/repository/org/Apache/axis2/axis2-kernel/1.4.1/axis2-kernel-1.4.1.jar!/org/Apache/axis2/description/Java2wsdl/bytecode/ClassReader.class, jar:file:///C:/Users/a0763323/.m2/repository/it/aon/WSInfocar/1.2/WSInfocar-1.2.jar!/org/Apache/axis2/description/Java2wsdl/bytecode/ClassReader.class
[WARNING] org.Apache.axis2.description.Java2wsdl.bytecode.MethodTable scanned from multiple locations: jar:file:///C:/Users/a0763323/.m2/repository/org/Apache/axis2/axis2-kernel/1.4.1/axis2-kernel-1.4.1.jar!/org/Apache/axis2/description/Java2wsdl/bytecode/MethodTable.class, jar:file:///C:/Users/a0763323/.m2/repository/it/aon/WSInfocar/1.2/WSInfocar-1.2.jar!/org/Apache/axis2/description/Java2wsdl/bytecode/MethodTable.class
[WARNING] org.Apache.axis2.description.Java2wsdl.bytecode.ParamNameExtractor scanned from multiple locations: jar:file:///C:/Users/a0763323/.m2/repository/org/Apache/axis2/axis2-kernel/1.4.1/axis2-kernel-1.4.1

J'ai cherché partout mais je ne comprends ni ce que cela signifie ni comment résoudre ce problème.

J'utilise IntelliJ et le plugin maven compiler

<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>

Merci

3
Leviand

Permet de le décomposer ...

[AVERTISSEMENT] org.Apache.axis2.description.Java2wsdl.bytecode.ClassReader analysé à partir de plusieurs emplacements: 

  • jar: fichier: /// C: /Users/a0763323/.m2/repository/org/Apache/axis2/axis2-kernel/1.4.1/axis2-kernel-1.4.1.jar!/org/Apache/axis2/description/Java2wsdl/bytecode/ClassReader.class, 
  • jar: fichier: /// C: /Users/a0763323/.m2/repository/it/aon/WSInfocar/1.2/WSInfocar-1.2.jar! /org/Apache/axis2/description/Java2wsdl/bytecode/ClassReader.class

Vous avez la classe org.Apache.axis2.description.Java2wsdl.bytecode.ClassReader provenant de 2 JAR différents (et apparemment sur deux versions différentes!)

À en juger par les chemins de votre système de fichiers, vous avez probablement les dépendances suivantes:.

<dependency>
  <groupId>org.Apache.axis2</groupId>
  <artifactId>axis2-kernel</artifactId>
  <version>1.4.1</version>
</dependency>

<dependency>
  <groupId>it.aon.WSInfocar</groupId>
  <artifactId>WSInfocar</artifactId>
  <version>1.2</version>
</dependency>

Il est déconseillé, à l'extrême, d'avoir deux versions différentes de la même classe sur votre classpath/classloader (il est très facile d'utiliser une version puis de la passer à une classe différente de l'autre version qui ne comprendra pas ou ne pourra pas utiliser il)

Vous devrez déterminer manuellement lequel vous devez utiliser. Vous pouvez également demander aux développeurs de WSInfocar pourquoi ils regroupent également l’axe dans leur propre artefact.

2
Joakim Erdfelt

J'ai trouvé cette question et cette réponse très utiles. J'ai eu un conflit avec le noyau JDT et le compilateur Java Eclipse. Je suis allé dans Propriétés et j'ai cliqué sur Compilateur Java, changeant une chose à la fois et testant. Passer de JRE 1.8 à JRE 11 temps d’exécution a résolu le problème quelque part dans tout ce que j’ai testé.

J'ai vérifié: Activer les paramètres spécifiques au projet Utiliser les paramètres de conformité par défaut (1.8)

Ceci affiche un message: Lorsque vous sélectionnez la conformité 1.8, assurez-vous de disposer d’un JRE compatible installé et activé (actuellement 11). Configurez le JRE installé ou l'environnement d'exécution ou modifiez le chemin de génération.

Encore une fois, changez une chose à la fois puis testez. Je suis spécifiquement allé avec un 1.8 JRE parce que j'ai lu que Java 11 n'envoie pas de JRE. Je ne suis toujours pas clair sur ce sujet.

1