java - error - maven-compiler-plugin pom
el mensaje "no puede encontrar el sÃmbolo" de maven no sirve de nada (13)
En general, este error aparecerá cuando la versión del código de compilación sea diferente de la del código escrito. Por ejemplo, escriba el código que se basa en xxx-1.0.0.jar que una clase tiene el método A, pero el método cambió a B en xxx-1.1.0.jar. Si compila código con xxx-1.1.0.jar, verá el error.
Esta es una pregunta realmente simple, y es probable que sea un entorno que desconozco, pero Google es particularmente inútil para esta pregunta, dando resultados sobre errores de compilación, no cómo cambiar los mensajes de error de compilación.
Cuando construyo mi proyecto con maven, me dará los mensajes de error formateados aproximadamente de la siguiente manera:
[ERROR] /path/to/source/Main.java:[13,8] error: no se puede encontrar el símbolo
Cuando construyo con ant o javac, en realidad me dirá el símbolo que no puede encontrar en el mensaje de error. maven me da un número de línea y una posición de personaje, pero mostrar el símbolo real sería más útil. La línea de arriba es la única línea dada para cada uno de los errores de "no se puede encontrar el símbolo". No hay una línea arriba o abajo que da el símbolo. Imagino que tiene que haber alguna forma de que maven me diga esa información, pero no sé qué es. Probé la opción -e, ya que mvn me dijo que intentara usarla, pero me proporcionó un seguimiento de maven para el error, no el símbolo real.
¿Alguna ayuda?
Aquí está la salida 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"
Y aquí hay un mensaje de error de ejemplo (inútil), exactamente como el resultado de maven (solo con directorios abreviados):
[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] -------------------------------------------------------------
Los símbolos que no puede encontrar son "fakeThing" y "fakeThing2", no SoundEngineFilePanel.
En mi caso, el problema estaba en un contenedor hijo que no fue reconstruido ya que he agregado una nueva clase, pom.xml de ese contenedor hijo no estaba relacionado con mi pom.xml fallido como relación hijo-padre (usando <parent>
etiqueta). Así que reconstruí el frasco para niños después del cual el error se había ido.
Este es un bug en el plugin de compilación Maven, relacionado con JDK7, creo. Funciona bien con JDK6.
Esto no es una función de Maven; es una función del compilador. Mira de cerca; la información que está buscando es más probable en la siguiente línea.
Esto ocurre debido a este problema, es decir, el reempaquetado que definió en el archivo POM.
Eliminar esto del archivo pom bajo el plugin maven. Funcionará
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
Incluso estoy usando Java 7, maven 2.2.1 y estaba obteniendo el mismo error, eliminé <scope>tests</scope>
de mi pom y usé
mvn clean -DskipTests=true install
para construir mis proyectos con éxito, sin actualizar mi versión de maven.
Obtuve un problema similar en Eclipse STS al intentar ejecutar una instalación de Maven en un proyecto. Había cambiado algunas versiones en las dependencias de mi archivo pom.xml para ese proyecto y los proyectos a los que apuntaban esas dependencias. Lo resolví ejecutando una instalación de Maven en todos los proyectos que cambié y luego ejecutando la instalación en el original nuevamente.
SOLUCIÓN: @Antes de construir su componente (usando mvn clean install). Construya todo el proyecto una vez y vuelva a construir su componente
PORQUE :
Recibo este error muchas veces. La mayoría de las veces intentaré construir mi componente solo (ya que no he hecho cambios en otros lugares).
Correcto, pero ese frasco adicional que se ha descargado recientemente podría haberse visto afectado por los cambios realizados por un tercero (dentro de su componente). Hacer una instalación completa de mvn clean en todo el proyecto me ahorró muchas veces
Supongo que el compilador se queja de una anotación inválida. Me di cuenta de que Eclipse no muestra todos los errores, como una coma al final de una matriz en una anotación. Pero el javac
estándar sí lo hace.
Tuve el mismo problema con maven. Sucede que mi problema era que maven estaba generando las carpetas con diferentes nombres de casos. Esperaba un .service.MyFile pero en la carpeta de destino era Service / MyFile y java es sensible a mayúsculas y minúsculas. Tardé unas horas en descubrirlo, te recomiendo que lo revises.
Yo tuve el mismo problema. La razón fue que no tenía dos archivos JAR agregados a través de la dependencia de Maven, así que cuando mvn compile
, la consola muestra el error de error:
El símbolo no se puede encontrar, Clase ... ".
Arreglarlo:
- Eliminar los archivos JAR de la ruta de compilación
- Añadir a la ruta de compilación
- Ejecutar
mvn compile
actualizar a 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>
si tiene dependencia de algún otro proyecto en el espacio de trabajo y estos proyectos no se compilan correctamente, tal error podría aparecer. intente construir tales proyectos dependientes primero, puede ayudar