java.lang.IllegalStateException: endPosTable déjà mis en
Essayer de construire un alexa (amazon:echo) ensemble de compétences. Dans le même temps, d'essayer d'utiliser cette expérience comme un apprentissage de banc d'essai pour l'injection de dépendances par le biais de poignard 2. Cependant, la construction du paquet à l'aide de maven 2 cmd:
mvn assembly:assembly -DdescriptorId=jar-with-dependencies package'.
pour générer un zip jar les dépendances produit de l'exception suivante trace:
[INFO] ------------------------------------------------------------------------
[INFO] Building Echo Device Client 1.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ echo-device-client ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /Users/apil.tamang/Dropbox/Git/echo-device-client/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.3:compile (default-compile) @ echo-device-client ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 46 source files to /Users/apil.tamang/Dropbox/Git/echo-device-client/target/classes
An exception has occurred in the compiler (1.8.0_60). Please file a bug at the Java Bug Database (http://bugreport.java.com/bugreport/) after checking the database for duplicates. Include your program and the following diagnostic in your report. Thank you.
java.lang.IllegalStateException: endPosTable already set
at com.sun.tools.javac.util.DiagnosticSource.setEndPosTable(DiagnosticSource.java:136)
at com.sun.tools.javac.util.Log.setEndPosTable(Log.java:350)
at com.sun.tools.javac.main.JavaCompiler.parse(JavaCompiler.java:667)
at com.sun.tools.javac.main.JavaCompiler.parseFiles(JavaCompiler.java:950)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.<init>(JavacProcessingEnvironment.java:892)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.next(JavacProcessingEnvironment.java:921)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1187)
at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:856)
at com.sun.tools.javac.main.Main.compile(Main.java:523)
at com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:129)
at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:138)
La première compilation se passe bien, et tous les tests sont exécutés et exécutée avec succès. J'ai l'impression que c'est lors de la "liaison" les dépendances que les choses vont vers le sud. Veuillez prendre un coup d'oeil à ce fichier de voir la sortie de la console lors de la compilation.
Ma question est de savoir si ça vaut le coup d'essayer de générer les dépendances à l'aide d'une manière différente. Je ne sais pas beaucoup au sujet de maven à cette fin. Est-il un patch ou quelque chose là-bas qui peuvent être utilisés? Pensez-vous qu'il est encore possible de trouver une solution de contournement? Je voudrais être en mesure de continuer à utiliser la dague 2 cadre pour la construction de ce projet.
Vous devez vous connecter pour publier un commentaire.
Le problème est décrit dans le rapport de bug
JDK-8067747
:(par Jan Lahoda)
Cela implique que, lorsque le maven bug est corrigé,
javac
’s bug de signaler le problème avec une inappropriée exception devient hors de propos. Toutefois, compte tenu de la date réelle de Maven 2 en fin de vie, je doute que vous pouvez vous attendre à trouver une solution ou un patch pour elle.mvn clean
Comme expliqué dans ce problème, une solution est de désactiver useIncrementalCompilation:
Je ne sais pas si cela peut aider. Pour mon cas, j'ai eu le même problème avec
open-jdk
8u91
, j'ai installé oracle jdk et j'ai pu exécuter le projet aprèsmvn clean compile
. Le problème est que je doit commuté entre le Jdk pour chaque exécution et de construction une fois de plus avec maven.MODIFIER: après avoir passé deux jours avec lui, je trouve qu'il est un résultat de décalage entre
maven
etjdk
. Mon IDE utilisé maven 3.0.5 comme livré maven.Solution: Dans votre IDE, vous devriez changer votre maven répertoire d'accueil de
bundled maven
à votre version actuelle par exemple/usr/share/maven
. ( pour moi la version actuelle a été 3.3.9)J'ai rencontré la même erreur avec un projet qui a été construit et testé par Maven et JDK 1.8.0_121. Dans la configuration d'origine, le projet a d'abord été nettoyé par
mvn clean
, puis construit à l'aide demvn install -projectSpecificParameters
et enfin testé avec une autremvn install -otherProjectSpecificParameters
. Cette configuration a entraîné dans l'erreur mentionnée dans la question.Après modification de l'ordre des étapes (d'abord le test, puis la construction) et l'ajout d'un
clean
objectif de la commande de construction de nettoyer le bâti de l'etat après les tests que l'erreur n'était pas reproductible plus.Dans mon cas, ce qui s'est passé lors de la génération de JPA fichiers de métadonnées avec le
maven-processor-plugin
plug-in. J'ai produit le fichier une seule fois avec un profil Maven et les ajouter au dossier de la source.Comme indiqué dans le rapport de bug ce qui se passe quand un fichier existant devrait compilé à nouveau. La solution est de supprimer les fichiers compilés avant la
maven-processor-plugin
exécution. E. g.: