87 votes

maven "ne peut pas trouver le symbole" message inutile

C'est vraiment une question simple, et c'est probablement un paramètre quelque part je ne sais pas, mais Google est particulièrement désavantageuse pour cette question, en donnant des résultats sur des erreurs de compilation, pas comment modifier les messages d'erreur de compilation.

Quand je construis mon projet avec maven, il va me donner des messages d'erreur formaté à peu près comme suit:

[ERREUR] /path/to/source/Main.java:[13,8] erreur: impossible de trouver le symbole

Quand je avec ant ou javac, il va me dire le symbole qu'il ne peut pas trouver dans le message d'erreur. maven me donne un numéro de ligne et la position des caractères, mais en affichant la réelle symbole serait plus utile. La ligne ci-dessus est la seule ligne de donnée pour chacun des "impossible de trouver le symbole" erreurs. Il n'y a pas de ligne au-dessus ou au-dessous qui donne le symbole. J'imagine qu'il doit être un moyen d'obtenir maven pour me dire que l'information, mais je ne sais pas ce que c'est. J'ai essayé l'option-e, comme mvn m'a dit d'essayer de l'utiliser, mais il a donné un maven traceback pour l'erreur, pas le symbole.

Toute aide?

Voici la sortie de mvn --version

Apache Maven 3.0.4 (rNON-CANONICAL_2012-10-24_11-25_mockbuild; 2012-10-24 07:25:04-0400)
Maven home: /usr/share/maven
Java version: 1.7.0_09-icedtea, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.6.6-1.fc17.x86_64", arch: "amd64", family: "unix"

Et voici un exemple (inutile) message d'erreur, exactement comme sortie par maven (juste avec des répertoires de raccourci):

[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /path/to/source/SoundEngineFilePanel.java:[33,8] error: cannot find symbol
[ERROR]  class SoundEngineFilePanel
/path/to/source/SoundEngineFilePanel.java:[36,8] error: cannot find symbol
[INFO] 2 errors 
[INFO] -------------------------------------------------------------

Les symboles qu'il ne peut pas trouver sont "fakeThing" et "fakeThing2", pas SoundEngineFilePanel.

41voto

Peter Liljenberg Points 3588

Ceci est un bogue dans le plugin de compilation Maven, lié à JDK7, je pense. Fonctionne bien avec JDK6.

37voto

mettre à jour à 3.1:

   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
        <source>1.7</source>
        <target>1.7</target>
    </configuration>
</plugin>
 

2voto

Abhishek Simon Points 2607

Même si j'utilise Java 7, maven 2.2.1 et que je reçois la même erreur, j'ai enlevé <scope>tests</scope> de mon pom et utilisé

mvn clean -DskipTests=true install pour réussir à construire mes projets, sans mettre à niveau ma version maven.

0voto

Isaac Points 8187

Ce n'est pas une fonction de Maven; c'est une fonction du compilateur. Regarder attentivement; les informations que vous recherchez se trouvent probablement dans la ligne suivante.

-1voto

asgoth Points 14599

Je suppose que le compilateur se plaint d'une annotation non valide. J'ai remarqué qu'Eclipse ne montre pas toutes les erreurs, comme une virgule à la fin d'un tableau dans une annotation. Mais la norme javac fait.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X