Thorbjørn Ravn Andersen a répondu correctement à la majeure partie de la question.
Cette réponse tente de faire la lumière sur la question restante : comment le fichier de classe contenant des erreurs a-t-il pu se retrouver dans le fichier jar ?
Chaque build (Maven & javac ou Eclipse) signale de manière spécifique lorsqu'il rencontre une erreur de compilation, et refusera de créer un fichier Jar à partir de celui-ci (ou au moins vous alertera de manière proéminente). La cause la plus probable de l'inclusion silencieuse de fichiers de classe contenant des erreurs dans un jar est le fonctionnement simultané de Maven et d'Eclipse.
Si vous avez Eclipse ouvert pendant que vous exécutez un build mvn, vous devez désactiver Projet > Construire automatiquement jusqu'à ce que mvn ait terminé.
EDIT : Essayons de diviser l'énigme en trois parties :
(1) Quelle est la signification de "java.lang.Error : Compilation non résolue non résolu"
C'est ce qu'a expliqué Thorbjørn Ravn Andersen. Il ne fait aucun doute qu'Eclipse a trouvé une erreur au moment de la compilation .
(2) Comment un fichier de classe compilé par Eclipse peut-il se retrouver dans un fichier jar créé ? par maven (en supposant que maven est no configuré pour utiliser l'ecj pour compilation) ?
Cela peut se produire en invoquant Maven sans nettoyage ou avec un nettoyage incomplet. Ou bien, une compilation automatique d'Eclipse pourrait réagir aux changements dans le système de fichiers (effectués par Maven) et recompiler une classe, avant Maven procède à la collecte des fichiers de classe dans le fichier jar ( c'est ce que j'entendais par "opération concurrente" dans ma réponse initiale ).
(3) Comment se fait-il qu'il y ait une erreur de compilation, mais qu'il n'y ait pas d'erreur de compilation ? mvn clean
réussit ?
Là encore, plusieurs possibilités : (a) les compilateurs ne sont pas d'accord sur la légalité du code source, ou (b) Eclipse compile avec des paramètres erronés tels qu'un classpath incomplet, une mauvaise conformité Java, etc. Quoi qu'il en soit, une séquence d'actualisation et de compilation propre dans Eclipse devrait faire apparaître le problème.